Hi all,
We’re seeing an on-and-off 403 Forbidden error from the SCORM XBlock’s storage check, which crashes course outline pages for users. Hoping someone has hit this before.
Environment:
- tutor 17(quince)
- Self-hosted MinIO (S3-compatible storage) behind Caddy as reverse proxy
openedx-scorm-xblockfor SCORM content
The error:
File ".../openedxscorm/scormxblock.py", line 385, in index_page_url
if self.storage.exists(
File ".../storages/backends/s3.py", line 479, in exists
self.connection.meta.client.head_object(Bucket=self.bucket_name, Key=name)
botocore.exceptions.ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden
It’s triggered when a course’s BlockStructure cache is cold (log line: BlockStructure: Not found in cache), forcing a full block-tree rebuild. That calls student_view_data() on every block, including SCORM, which proactively checks storage.exists(). Since django-storages re-raises any non-404 ClientError, the 403 becomes an uncaught exception → 500 on /api/course_home/outline/....
Does anyone know about this issue and how we can resolved this ?