Files & Uploads page is blank

Hi all

I’ve set up a new instance of Tutor and so far mostly everything is working fine, but am having trouble with the Files and Uploads section displaying no functionality to upload/manage files as shown in the below screenshot. I’ve also got below a (sanitised) copy of the logs that show at the time of accessing the Files and Uploads section.

Anyone know what I can do to resolve this?
I’m seeing 404 errors from Caddy in the logs, signalling that the page doesn’t exist (I’m assuming) but not sure how to fix

cms_1                        | 2022-04-04 06:59:36,720 INFO 16 [tracking] [user 4] [ip 192.168.xxx.xxx] logger.py:41 - {"name": "/assets/course-v1:MyCourseName/", "context": {"user_id": 4, "path": "/assets/course-v1:MyCourseName/", "course_id": "", "org_id": "", "enterprise_uuid": ""}, "username": "admin", "session": "d7e1bc2ab39242c678a221eec919dcb7", "ip": "192.168.xxx.xxx", "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36 OPR/84.0.4316.42", "host": "cms.domain.tld", "referer": "https://cms.domain.tld/course/course-v1:PKF+TS001+2022", "accept_language": "en-ZA,en-US;q=0.9,en;q=0.8", "event": "{\"GET\": {}, \"POST\": {}}", "time": "2022-04-04T06:59:36.720391+00:00", "event_type": "/assets/course-v1:MyCourseName/", "event_source": "server", "page": null}
cms_1                        | [pid: 16|app: 0|req: 54/131] 172.18.0.12 () {58 vars in 1434 bytes} [Mon Apr  4 06:59:36 2022] GET /assets/course-v1:MyCourseName/ => generated 14635 bytes in 81 msecs (HTTP/1.1 200) 7 headers in 466 bytes (1 switches on core 0)
caddy_1                      | {"level":"info","ts":1649055576.774918,"logger":"http.log.access.log1","msg":"handled request","request":{"remote_addr":"192.168.xxx.xxx:51309","proto":"HTTP/2.0","method":"GET","host":"cms.domain.tld","uri":"/assets/course-v1:MyCourseName/","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"cms.domain.tld"}},"user_id":"","duration":0.083927799,"size":14635,"status":200}
cms_1                        | 2022-04-04 06:59:36,874 INFO 16 [tracking] [user 4] [ip 192.168.xxx.xxx] logger.py:41 - {"name": "/static/studio/common/css/vendor/assets.min.css", "context": {"user_id": 4, "path": "/static/studio/common/css/vendor/assets.min.css", "course_id": "", "org_id": "", "enterprise_uuid": ""}, "username": "admin", "session": "d7e1bc2ab39242c678a221eec919dcb7", "ip": "192.168.xxx.xxx", "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36 OPR/84.0.4316.42", "host": "cms.domain.tld", "referer": "https://cms.domain.tld/assets/course-v1:MyCourseName/", "accept_language": "en-ZA,en-US;q=0.9,en;q=0.8", "event": "{\"GET\": {}, \"POST\": {}}", "time": "2022-04-04T06:59:36.873704+00:00", "event_type": "/static/studio/common/css/vendor/assets.min.css", "event_source": "server", "page": null}
cms_1                        | 2022-04-04 06:59:36,876 INFO 7 [tracking] [user 4] [ip 192.168.xxx.xxx] logger.py:41 - {"name": "/static/studio/common/css/vendor/common.min.css", "context": {"user_id": 4, "path": "/static/studio/common/css/vendor/common.min.css", "course_id": "", "org_id": "", "enterprise_uuid": ""}, "username": "admin", "session": "d7e1bc2ab39242c678a221eec919dcb7", "ip": "192.168.xxx.xxx", "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36 OPR/84.0.4316.42", "host": "cms.domain.tld", "referer": "https://cms.domain.tld/assets/course-v1:MyCourseName/", "accept_language": "en-ZA,en-US;q=0.9,en;q=0.8", "event": "{\"GET\": {}, \"POST\": {}}", "time": "2022-04-04T06:59:36.876132+00:00", "event_type": "/static/studio/common/css/vendor/common.min.css", "event_source": "server", "page": null}
caddy_1                      | {"level":"error","ts":1649055576.9061806,"logger":"http.log.access.log1","msg":"handled request","request":{"remote_addr":"192.168.xxx.xxx:51309","proto":"HTTP/2.0","method":"GET","host":"cms.domain.tld","uri":"/static/studio/common/css/vendor/assets.min.css","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"cms.domain.tld"}},"user_id":"","duration":0.061049477,"size":7981,"status":404}
cms_1                        | [pid: 16|app: 0|req: 55/132] 172.18.0.12 () {54 vars in 1282 bytes} [Mon Apr  4 06:59:36 2022] GET /static/studio/common/css/vendor/assets.min.css => generated 7981 bytes in 60 msecs (HTTP/1.1 404) 7 headers in 472 bytes (1 switches on core 0)
caddy_1                      | {"level":"error","ts":1649055576.9142792,"logger":"http.log.access.log1","msg":"handled request","request":{"remote_addr":"192.168.xxx.xxx:51309","proto":"HTTP/2.0","method":"GET","host":"cms.domain.tld","uri":"/static/studio/common/css/vendor/common.min.css","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"cms.domain.tld"}},"user_id":"","duration":0.070172805,"size":7981,"status":404}
cms_1                        | [pid: 7|app: 0|req: 49/133] 172.18.0.12 () {54 vars in 1282 bytes} [Mon Apr  4 06:59:36 2022] GET /static/studio/common/css/vendor/common.min.css => generated 7981 bytes in 67 msecs (HTTP/1.1 404) 7 headers in 472 bytes (1 switches on core 0)
cms_1                        | 2022-04-04 06:59:36,925 INFO 16 [tracking] [user 4] [ip 192.168.xxx.xxx] logger.py:41 - {"name": "/static/studio/common/js/vendor/assets.min.js", "context": {"user_id": 4, "path": "/static/studio/common/js/vendor/assets.min.js", "course_id": "", "org_id": "", "enterprise_uuid": ""}, "username": "admin", "session": "d7e1bc2ab39242c678a221eec919dcb7", "ip": "192.168.xxx.xxx", "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36 OPR/84.0.4316.42", "host": "cms.domain.tld", "referer": "https://cms.domain.tld/assets/course-v1:MyCourseName/", "accept_language": "en-ZA,en-US;q=0.9,en;q=0.8", "event": "{\"GET\": {}, \"POST\": {}}", "time": "2022-04-04T06:59:36.925424+00:00", "event_type": "/static/studio/common/js/vendor/assets.min.js", "event_source": "server", "page": null}
cms_1                        | 2022-04-04 06:59:36,932 INFO 7 [tracking] [user 4] [ip 192.168.xxx.xxx] logger.py:41 - {"name": "/static/studio/common/js/vendor/common.min.js", "context": {"user_id": 4, "path": "/static/studio/common/js/vendor/common.min.js", "course_id": "", "org_id": "", "enterprise_uuid": ""}, "username": "admin", "session": "d7e1bc2ab39242c678a221eec919dcb7", "ip": "192.168.xxx.xxx", "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36 OPR/84.0.4316.42", "host": "cms.domain.tld", "referer": "https://cms.domain.tld/assets/course-v1:MyCourseName/", "accept_language": "en-ZA,en-US;q=0.9,en;q=0.8", "event": "{\"GET\": {}, \"POST\": {}}", "time": "2022-04-04T06:59:36.931892+00:00", "event_type": "/static/studio/common/js/vendor/common.min.js", "event_source": "server", "page": null}
caddy_1                      | {"level":"error","ts":1649055576.9544353,"logger":"http.log.access.log1","msg":"handled request","request":{"remote_addr":"192.168.xxx.xxx:51309","proto":"HTTP/2.0","method":"GET","host":"cms.domain.tld","uri":"/static/studio/common/js/vendor/assets.min.js","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"cms.domain.tld"}},"user_id":"","duration":0.062858642,"size":7981,"status":404}
cms_1                        | [pid: 16|app: 0|req: 56/134] 172.18.0.12 () {54 vars in 1264 bytes} [Mon Apr  4 06:59:36 2022] GET /static/studio/common/js/vendor/assets.min.js => generated 7981 bytes in 46 msecs (HTTP/1.1 404) 7 headers in 472 bytes (1 switches on core 0)
cms_1                        | [pid: 7|app: 0|req: 50/135] 172.18.0.12 () {54 vars in 1264 bytes} [Mon Apr  4 06:59:36 2022] GET /static/studio/common/js/vendor/common.min.js => generated 7981 bytes in 52 msecs (HTTP/1.1 404) 7 headers in 472 bytes (1 switches on core 0)
caddy_1                      | {"level":"error","ts":1649055576.96826,"logger":"http.log.access.log1","msg":"handled request","request":{"remote_addr":"192.168.xxx.xxx:51309","proto":"HTTP/2.0","method":"GET","host":"cms.domain.tld","uri":"/static/studio/common/js/vendor/common.min.js","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"cms.domain.tld"}},"user_id":"","duration":0.077010915,"size":7981,"status":404}
cms_1                        | 2022-04-04 06:59:36,971 INFO 16 [tracking] [user 4] [ip 192.168.xxx.xxx] logger.py:41 - {"name": "/static/studio/common/js/vendor/runtime.min.js", "context": {"user_id": 4, "path": "/static/studio/common/js/vendor/runtime.min.js", "course_id": "", "org_id": "", "enterprise_uuid": ""}, "username": "admin", "session": "d7e1bc2ab39242c678a221eec919dcb7", "ip": "192.168.xxx.xxx", "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36 OPR/84.0.4316.42", "host": "cms.domain.tld", "referer": "https://cms.domain.tld/assets/course-v1:MyCourseName/", "accept_language": "en-ZA,en-US;q=0.9,en;q=0.8", "event": "{\"GET\": {}, \"POST\": {}}", "time": "2022-04-04T06:59:36.971336+00:00", "event_type": "/static/studio/common/js/vendor/runtime.min.js", "event_source": "server", "page": null}
caddy_1                      | {"level":"error","ts":1649055577.006035,"logger":"http.log.access.log1","msg":"handled request","request":{"remote_addr":"192.168.xxx.xxx:51309","proto":"HTTP/2.0","method":"GET","host":"cms.domain.tld","uri":"/static/studio/common/js/vendor/runtime.min.js","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"cms.domain.tld"}},"user_id":"","duration":0.115748295,"size":7981,"status":404}
cms_1                        | [pid: 16|app: 0|req: 57/136] 172.18.0.12 () {54 vars in 1266 bytes} [Mon Apr  4 06:59:36 2022] GET /static/studio/common/js/vendor/runtime.min.js => generated 7981 bytes in 52 msecs (HTTP/1.1 404) 7 headers in 472 bytes (1 switches on core 0)
cms_1                        | 2022-04-04 06:59:37,059 INFO 7 [tracking] [user 4] [ip 192.168.xxx.xxx] logger.py:41 - {"name": "/static/studio/common/js/vendor/common.min.js", "context": {"user_id": 4, "path": "/static/studio/common/js/vendor/common.min.js", "course_id": "", "org_id": "", "enterprise_uuid": ""}, "username": "admin", "session": "d7e1bc2ab39242c678a221eec919dcb7", "ip": "192.168.xxx.xxx", "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36 OPR/84.0.4316.42", "host": "cms.domain.tld", "referer": "https://cms.domain.tld/assets/course-v1:MyCourseName/", "accept_language": "en-ZA,en-US;q=0.9,en;q=0.8", "event": "{\"GET\": {}, \"POST\": {}}", "time": "2022-04-04T06:59:37.058926+00:00", "event_type": "/static/studio/common/js/vendor/common.min.js", "event_source": "server", "page": null}
cms_1                        | [pid: 7|app: 0|req: 51/137] 172.18.0.12 () {54 vars in 1263 bytes} [Mon Apr  4 06:59:37 2022] GET /static/studio/common/js/vendor/common.min.js => generated 7981 bytes in 52 msecs (HTTP/1.1 404) 7 headers in 472 bytes (1 switches on core 0)
caddy_1                      | {"level":"error","ts":1649055577.0892267,"logger":"http.log.access.log1","msg":"handled request","request":{"remote_addr":"192.168.xxx.xxx:51309","proto":"HTTP/2.0","method":"GET","host":"cms.domain.tld","uri":"/static/studio/common/js/vendor/common.min.js","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"cms.domain.tld"}},"user_id":"","duration":0.056713319,"size":7981,"status":404}
cms_1                        | 2022-04-04 06:59:37,149 INFO 16 [tracking] [user 4] [ip 192.168.xxx.xxx] logger.py:41 - {"name": "/static/studio/common/js/vendor/assets.min.js", "context": {"user_id": 4, "path": "/static/studio/common/js/vendor/assets.min.js", "course_id": "", "org_id": "", "enterprise_uuid": ""}, "username": "admin", "session": "d7e1bc2ab39242c678a221eec919dcb7", "ip": "192.168.xxx.xxx", "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36 OPR/84.0.4316.42", "host": "cms.domain.tld", "referer": "https://cms.domain.tld/assets/course-v1:MyCourseName/", "accept_language": "en-ZA,en-US;q=0.9,en;q=0.8", "event": "{\"GET\": {}, \"POST\": {}}", "time": "2022-04-04T06:59:37.148707+00:00", "event_type": "/static/studio/common/js/vendor/assets.min.js", "event_source": "server", "page": null}
caddy_1                      | {"level":"error","ts":1649055577.180175,"logger":"http.log.access.log1","msg":"handled request","request":{"remote_addr":"192.168.xxx.xxx:51309","proto":"HTTP/2.0","method":"GET","host":"cms.domain.tld","uri":"/static/studio/common/js/vendor/assets.min.js","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"cms.domain.tld"}},"user_id":"","duration":0.065212152,"size":7981,"status":404}
cms_1                        | [pid: 16|app: 0|req: 58/138] 172.18.0.12 () {54 vars in 1263 bytes} [Mon Apr  4 06:59:37 2022] GET /static/studio/common/js/vendor/assets.min.js => generated 7981 bytes in 63 msecs (HTTP/1.1 404) 7 headers in 472 bytes (1 switches on core 0)

I have the same problem. Do you also build openedx image? That image will lack some js files. As what I asked in the post.https://discuss.overhang.io/t/build-openedx-iamge-some-js-are-missing/2629. If you pull https://hub.docker.com/r/overhangio/openedx/, will solve this probnlem.

Sounds about right, I did download and set the Indigo theme by running following commands:

git clone https://github.com/overhangio/indigo
tutor config render --extra-config ./indigo/config.yml ./indigo/theme "$(tutor config printroot)/env/build/openedx/themes/indigo"
tutor images build openedx
tutor local start -d
tutor local settheme indigo

docker pull overhangio/openedx:13.1.8
This fixed it for me, thanks @gostdio

1 Like

I am also having the same problem with docker overhangio/openedx:13.1.11.
image

Sorry for the dump question, how I can use a lower version of docker. I already have 13.1.11 running. Should I rebuild?

CONTAINER ID   IMAGE                                        COMMAND                  CREATED          STATUS         PORTS                                                                                NAMES
71b4486c261d   overhangio/openedx-ecommerce-worker:13.0.0   "/bin/sh -c 'celery …"   49 minutes ago   Up 6 minutes                                                                                        tutor_local_ecommerce-worker_1
88a197b63871   overhangio/openedx:13.1.11                   "docker-entrypoint.s…"   49 minutes ago   Up 6 minutes   8000/tcp                                                                             tutor_local_cms-worker_1
fe18a9ff2663   overhangio/openedx-ecommerce:13.0.0          "/bin/sh -c 'uwsgi  …"   49 minutes ago   Up 6 minutes   8000/tcp                                                                             tutor_local_ecommerce_1
202dfd675225   overhangio/openedx:13.1.11                   "docker-entrypoint.s…"   49 minutes ago   Up 6 minutes   8000/tcp                                                                             tutor_local_cms_1
516c742ad7a0   overhangio/openedx:13.1.11 

Temporarily fixed issue.

  • Go to the docker file tutor/build/Dockerfile
  • Add a line of code from new PR
  • Rebuild image tutor images build openedx
  • Start your server tutor local start -d
  • Make sure that your newly built image is up, docker ps
    Thank you very much @regis and @uetuluk
1 Like

For anyone who arrives here in the future, this issue should now be fixed in v13.2.1:

2 Likes

Great! :100:
Thank you @regis

1 Like