# Ulmo.1 collectstatic failure: SuspiciousFileOperation (/openedx/css/images/correct-icon.png outside STATIC\_ROOT)

**URL:** https://discuss.openedx.org/t/ulmo-1-collectstatic-failure-suspiciousfileoperation-openedx-css-images-correct-icon-png-outside-static-root/18573
**Category:** Site Operations Help
**Created:** [March 10, 2026, 12:09am UTC](https://discuss.openedx.org/t/ulmo-1-collectstatic-failure-suspiciousfileoperation-openedx-css-images-correct-icon-png-outside-static-root/18573 "2026-03-10T00:09:34Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![pselleh](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/pselleh/32/8263_2.png) [@pselleh](https://discuss.openedx.org/u/pselleh)
#### Post date: [March 10, 2026, 12:09am UTC](https://discuss.openedx.org/t/ulmo-1-collectstatic-failure-suspiciousfileoperation-openedx-css-images-correct-icon-png-outside-static-root/18573/1 "2026-03-10T00:09:34Z")

</div>

Our current environment is Ulmo.1, Tutor 21+, and custom theme plugin + orgcode plugin (both tested disabled)

The Problem is during collectstatic, the process fails with a SuspiciousFileOperation referencing a path outside STATIC\_ROOT.

Command: tutor local run lms python manage.py lms collectstatic --noinput

Error:

django.core.exceptions.SuspiciousFileOperation:  
The joined path (/openedx/css/images/correct-icon.png)  
is located outside of the base path component (/openedx/staticfiles)

The Stack trace ends in: openedx/core/djangoapps/theming/storage.py

What I have already verified: Clean install of Ulmo.1, Removed and rebuilt Tutor environment, Disabled custom plugins, Verified theme does not reference /css/images, Verified plugins do not reference /css/images, Deleted staticfiles directory: rm -rf /openedx/staticfiles/\*, then reran collectstatic.

Static files that exis. The correct images are present in staticfiles: /openedx/staticfiles/images/correct-icon.png, openedx/staticfiles/images/incorrect-icon.png, /openedx/staticfiles/images/partially-correct-icon.png

But during hashing Django attempts to resolve: /openedx/css/images/correct-icon.png which is outside STATIC\_ROOT.

From staticfiles scan:

/openedx/staticfiles/xblock/resources/xmodule.discussion\_block/js/common\_static/images/correct-icon.png  
/openedx/staticfiles/studio/images/correct-icon.png  
/openedx/staticfiles/images/correct-icon.png

Question:

Is this a known issue in Ulmo.1 static pipeline or theming storage?

Specifically: openedx/core/djangoapps/theming/storage.py appears to attempt hashing a URL pointing to /openedx/css/images/…

Should that path exist, or is this a legacy reference that should be rewritten during collectstatic?

Any guidance on where the incorrect path originates would be greatly appreciated.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex020/uploads/openedx/original/2X/e/e0015f89e879bc75925b71fd11133ab15fe98297.png) [@system](https://discuss.openedx.org/u/system)
#### Post date: [June 8, 2026, 12:10am UTC](https://discuss.openedx.org/t/ulmo-1-collectstatic-failure-suspiciousfileoperation-openedx-css-images-correct-icon-png-outside-static-root/18573/2 "2026-06-08T00:10:31Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
