mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-02-05 00:39:38 +03:00
🐛 Bug Report: S3 storage backend does not support some S3-compatible object storage providers (e.g. Linode) #548
Reference in New Issue
Block a user
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?
Originally created by @marvin-roesch on GitHub (Nov 19, 2025).
Reproduction steps
When using an S3-compatible object storage offering such as Linode's, which however does not fully support all the integrity checks that AWS has implemented, putting objects fails.
To reproduce, set up a bucket on such a provider and try to bootstrap a new Pocket ID instance. I currently only know of Linode failing for sure and don't know if it can be easily reproduced with something like MinIO.
See aws/aws-sdk-go-v2#2960 for how to potentially mitigate this when using the AWS Go SDK. There probably should be a config option to enable this backwards compatibility.
Expected behavior
Objects (e.g. the
background.webpduring bootstrap) should be put on the object storage without issue.Actual Behavior
The
PutObjectoperation fails with a400 Bad Requestand an error messageXAmzContentSHA256Mismatch.Pocket ID Version
next@sha256:cd69947205721a22d6f1f3e9f7574617ffa2ccf84b29cd056c478bc68bdfb93e (due to unreleased nature of the feature)
Database
Postgres 18
OS and Environment
Kubernetes 1.34.2 on Talos Linux, served via kgateway
Log Output
No response
@stonith404 commented on GitHub (Nov 26, 2025):
Thanks for testing S3. Would you mind testing the latest
nextimage? You should now be able to disable the integrity checks withS3_DISABLE_DEFAULT_INTEGRITY_CHECKS=true.@marvin-roesch commented on GitHub (Nov 26, 2025):
Testing on the latest
nextimage, using the new option to disable integrity checks, both the bootstrap process for uploading the default background image etc. and uploading e.g. a profile picture or an OIDC client image seem to work flawlessly with my Linode-hosted bucket.Thanks a bunch for the fix, @stonith404! Now I can run Pocket ID with some better redundancy 😁