mirror of
https://github.com/immich-app/immich
synced 2026-08-15 13:03:57 +00:00
* init
* fix
* styling
* temporary workaround for 500 error
**Root cause:**
The autogenerated Dart OpenAPI client (`UsersApi.createProfileImage()`) had two issues:
1. It set `Content-Type: multipart/form-data` without a boundary, which overrode the correct header that Dart's `MultipartRequest` would set (`multipart/form-data; boundary=...`).
2. It added the file to both `mp.fields` and `mp.files`, creating a duplicate text field.
**Result:**
Multer on the server failed to parse the multipart body, so `@UploadedFile()` was `undefined` → accessing `file.path` in `UserService.createProfileImage()` threw → **500 Internal Server Error**.
**Workaround:**
Bypass the autogenerated method in `UserApiRepository.createProfileImage()` and send the multipart request directly using the same `ApiClient` (basePath + auth), ensuring:
- No manual `Content-Type` header (let `MultipartRequest` set it with boundary)
- File only in `mp.files`, not `mp.fields`
- Proper filename fallback
* Revert "temporary workaround for 500 error"
This reverts commit 8436cd402632ca7be9272a1c72fdaf0763dcefb6.
* generate route for ProfilePictureCropPage
* add route import
* simplify
* try this
* Revert "try this"
This reverts commit fcf37d2801055c49010ddb4fd271feb900ee645a.
* try patching
* Reapply "temporary workaround for 500 error"
This reverts commit faeed810c21e4c9f0839dfff1f34aa6183469e56.
* Revert "Reapply "temporary workaround for 500 error""
This reverts commit a14a0b76d14975af98ef91748576a79cef959635.
* fix upload
* Refactor image conversion logic by introducing a new utility function. Replace inline image-to-Uint8List conversion with the new utility in EditImagePage, DriftEditImagePage, and ProfilePictureCropPage.
* use toast over snack
* format
* Revert "try patching"
This reverts commit 68a616522a1eee88c4a9755a314c0017e6450c0f.
* Enhance toast notification in ProfilePictureCropPage to include success type for better user feedback.
* Revert "simplify"
This reverts commit
|
||
|---|---|---|
| .. | ||
| album | ||
| asset_viewer | ||
| backup | ||
| image | ||
| infrastructure | ||
| map | ||
| search | ||
| timeline | ||
| activity.provider.dart | ||
| activity.provider.g.dart | ||
| activity_service.provider.dart | ||
| activity_service.provider.g.dart | ||
| activity_statistics.provider.dart | ||
| activity_statistics.provider.g.dart | ||
| api.provider.dart | ||
| api.provider.g.dart | ||
| app_life_cycle.provider.dart | ||
| app_settings.provider.dart | ||
| app_settings.provider.g.dart | ||
| asset.provider.dart | ||
| auth.provider.dart | ||
| background_sync.provider.dart | ||
| cast.provider.dart | ||
| cleanup.provider.dart | ||
| db.provider.dart | ||
| folder.provider.dart | ||
| gallery_permission.provider.dart | ||
| haptic_feedback.provider.dart | ||
| immich_logo_provider.dart | ||
| immich_logo_provider.g.dart | ||
| local_auth.provider.dart | ||
| locale_provider.dart | ||
| memory.provider.dart | ||
| multiselect.provider.dart | ||
| network.provider.dart | ||
| notification_permission.provider.dart | ||
| oauth.provider.dart | ||
| partner.provider.dart | ||
| routes.provider.dart | ||
| secure_storage.provider.dart | ||
| server_info.provider.dart | ||
| shared_link.provider.dart | ||
| sync_status.provider.dart | ||
| tab.provider.dart | ||
| theme.provider.dart | ||
| timeline.provider.dart | ||
| trash.provider.dart | ||
| upload_profile_image.provider.dart | ||
| user.provider.dart | ||
| websocket.provider.dart | ||