fix: settings page fails to load when the deployed backend predates the listMine args change - #3078
Conversation
The settings route sends includePublishedItems to publishers:listMine, but Convex validators reject unknown args. When the deployed frontend is newer than the deployed Convex backend (as in production right now), every signed-in /settings visit fails with a redacted Server Error. Omit the arg so the page works against both backend generations; the lightweight-list optimization can be reintroduced once the new validator is verifiably live in production.
|
@mattmillerai is attempting to deploy a commit to the OpenClaw Foundation Team on Vercel. A member of the Team first needs to authorize it. |
|
Codex review: needs real behavior proof before merge. Reviewed July 17, 2026, 10:47 AM ET / 14:47 UTC. Summary Reproducibility: yes. at high confidence from the API contract and live before-fix transcript: a frontend sending the new argument to an older Convex validator receives a server error. The after-fix signed-in browser path was not demonstrated. Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Identify the commit that changed current main to pass Do we have a high-confidence way to reproduce the issue? Yes at high confidence from the API contract and live before-fix transcript: a frontend sending the new argument to an older Convex validator receives a server error. The after-fix signed-in browser path was not demonstrated. Is this the best way to solve the issue? Yes. Omitting the optional argument is the narrowest compatibility-preserving rollback because both backend generations accept AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 088cb3275c2a. Label changesLabel justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: fix: settings page fails to load when the deployed backend predates the listMine args change This is item 1/1 in the current shard. Shard 15/20. This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
|
Resolved by the production Convex rollout on July 14, 2026: the deployed |
What Problem This Solves
Signed-in users currently get the global error boundary on
/settings:#3073 made the settings route pass
{ includePublishedItems: false }topublishers:listMine, but Convex validators reject unknown arguments. Whenever the deployed web app is newer than the deployed Convex backend — true in production right now — the whole settings route error-boundaries for every signed-in user.Verifiable from anywhere (unauthenticated):
What This Changes
The settings route omits the argument and passes
{}, which both backend generations accept — the new backend defaultsincludePublishedItemstotrue, so rendering is unchanged and the page works regardless of deploy order. A brief comment marks the rollout hazard. The lightweight-list optimization from #3073 can be reintroduced once the new validator is verifiably live in production.Even after the backend catches up, this keeps
/settingsresilient to the frontend-ahead-of-backend deploy window that any future arg addition reopens.Tests:
src/routes/-settings.test.tsxupdated (24/24 passing); biome clean.Related: #3064