fix: JSONB array queries fail with "invalid input syntax for type json"

⛔ closed · #5 · willchen96/mike ← sid-swirl/mike · opened 26d ago by sid-swirl · closed 16d ago · +58-52 across 3 files · ↗ on GitHub

From the PR description

shared_with is a jsonb column, but the Supabase JS .contains() helper serialises JavaScript arrays using Postgres array syntax ({value}) instead of JSON syntax (["value"]), causing every call to GET /projects to return a 500 for any user with a non-empty email address.

Fixed by replacing .contains() with .filter('shared_with', 'cs', JSON.stringify([email])), which produces valid JSON that PostgREST can pass through to the @> operator correctly.

Also adds forcePathStyle: true to the S3 client, which is required when running against a local MinIO instance (or any S3-compatible endpoint that doesn't support virtual-hosted-style bucket URLs).

Our analysis

Fix jsonb shared_with containment and enable path-style S3 — read the full analysis →

Think the analysis missed something the PR description covers?

Capture this PR into my fork

Download a Markdown prompt that tells Claude how to port every commit in this PR into your working tree. Run it via claude -p < capture-pull-5.md from inside the repo you want the changes in.

⬇ Download capture-pull-5.md