Profile photos upload but do not save (appear blank) #90
Labels
No labels
architecture
backend
bug
ci
config
database
docker
documentation
duplicate
enhancement
frontend
help wanted
invalid
issue-25
issue-26
issue-42
issue-65
issue-67
issue-82
migrations
p0-critical
p1-high
p2-medium
p3-low
performance
quality
question
security
state-management
testing
timezone
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
fastie81/honbu-manager#90
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem (via Natasha McKee - WA)
Profile photos upload but don't save - still appear blank after upload.
Steps to Reproduce
Expected Behavior
Uploaded profile photos should persist and display after saving.
Related Files
app/core/entities/models.py(Member/Profile model with photo field)app/core/operations/member_ops.py(photo upload handling)app/infrastructure/database/repositories/member_repo.py(photo storage)frontend/src/pages/profile/(photo upload component)frontend/src/components/common/(file upload component)fastie81 referenced this issue2026-07-09 10:07:22 +12:00
Investigation (21 Oct): prod logs show
POST /api/members/71/photo-> 500 (5 attempts, 15 Oct 07:33-07:36) withUnboundLocalError: cannot access local variable 'member_ops'. Cause: a localfrom app.container import member_opsinsideif role == 'Member':inMemberPhoto.post/.deletemademember_opsfunction-local, so every non-Member role (admin, instructor etc.) crashed on upload/delete. No other photo errors in the 14 days of logs; GETs are all 200.Fix: #143 merged to main (
4057830): removed the two shadowing imports, plus regression teststests/unit/test_member_photo_unbound.py(fail with 500 on old code, pass with fix). Also needed #144 (pin SQLAlchemy<2.1) to get CI green.Status: live on the test box. NOT yet in production - prod only deploys on
v*tags (prod still onci-fec0175). Leaving this open until a release tag is deployed and a non-Member upload is confirmed. Note: the report says the upload 'appears to succeed' - if the UI shows success on a 500 that is a separate frontend error-handling gap worth a look.Deployed to production: v3.4.10 (image
ci-168f17c, healthy, 0 innermember_opsimports in the running code, no tracebacks since deploy). Leaving open for one real confirmation: ask the reporter (Natasha) or an admin to upload a photo and confirm it persists after refresh. If the UI showed success on the earlier 500s, that is a separate frontend error-handling gap and worth its own issue.