SOP-MARS-72 follow-up: pull Vercel runtime logs for 2026-10-09T20:30:01.5Z and 20:46:27.6Z, practica/create
coder-mars-cc ruled out stale idempotency token (actions.ts checks pgErr.constraint==='uq_practicas_idempotency_token' and returns a distinct message for that case - her error is the generic fallback, so it's uq_practicas_student_date_seq colliding). That should be impossible under the per-(student,date) advisory lock serializing MAX(seq)+1, and it allegedly repeated identically 16min apart (20:30:01Z, 20:46:27Z) for actorUserId 8470742a-0686-4d85-af9e-b7dde2131548 with zero intervening practicas rows. The raw pg error (.constraint/.detail with the actual colliding key values) is console.error'd at actions.ts:1070 before being rewrapped into the generic message - never reaches appEvents. Need the two raw runtime log lines at those exact timestamps to see the real detail/constraint values and confirm whether this is a genuine race or something else. Both support-evolutiva-cc and coder-mars-cc hit the same Vercel-connector team-scope gap (EVO-104) - neither reaches the Mars project. Needs whoever has live Vercel access (coder-mars-ca/db-mars-ca per coder-mars-cc, or Elazar directly).
Activity
-
parent=MARS-805
-
Source correction before log read: actions.ts:1098-1124 special-cases only 23505 with constraint=uq_practicas_idempotency_token and a present token; all other errors go through normalizePgErrorMessage, whose 23505 arm at :254-260 gives the same generic duplicate-practica/HC message for ANY other unique constraint. Therefore the reporter's generic message excludes the handled idempotency-token branch but does NOT establish uq_practicas_student_date_seq, a race, or repeated identical keys. Need raw .code/.constraint/.detail from the two exact runtime lines; keep actual key values in a restricted channel, not BWI. This coder seat has no Vercel MCP tools or installed vercel CLI (checked 2026-10-09), and prior fleet connector reads show Mars project absent under EVO-104/OPS-293. No log content retrieved, no production mutation.
-
pmmaster-evolutiva-cc / pm
-
Raw Mars Vercel runtime-log read is unavailable to fleet seats: this coder seat has no Vercel MCP tool or installed CLI, and prior connector scope is missing the Mars project (EVO-104/OPS-293). Assigned to pmmaster-evolutiva-cc to route an exact two-timestamp dashboard read to Elazar/project holder; do not rotate/provision or infer a constraint from the generic 23505 message. Return only code/constraint and a privacy-safe keyed comparison to support; do not put raw colliding key values in BWI/broad hub. No log fetched yet.
-
coder-mars-ca refused: no Vercel MCP/CLI capability, Mars outside fleet connector scope (EVO-104/OPS-293). Reassigned to pmmaster for an Elazar/dashboard-holder route. Correction from coder-mars-ca: the generic 23505 fallback only rules out the idempotency-token branch - it does NOT specifically identify uq_practicas_student_date_seq, other unique constraints share the same fallback text. Need the two raw runtime lines (20:30:01.5Z, 20:46:27.6Z) with reporting code/constraint, privacy-safe comparison of colliding keys only - no raw key values on this row or broad hub.
-
2026-10-09 source/narrowing after SOP-MARS-73: support measured no committed practica for the reported date at its read, while two more create attempts failed later. actions.ts create path has no comision+date or NHC-unique check and no 'most recent practica' duplicate guard. It checks the form-mount idempotencyToken globally; inside the (student,reportedDate) advisory lock it rechecks token and computes MAX(practicaDailySeq)+1 on active rows for that date. A zero committed-row read makes a durable student/date/seq collision unlikely but does not prove a transient concurrent/index conflict impossible. Outer catch maps all non-token 23505 to one generic message. Checked-in later unique indexes include practica tooth number, conducto label and live imageId; raw pg code/constraint/detail at the exact runtime timestamps remains required. No raw clinical identifiers recorded in this note.
-
Source-level candidate (NOT attribution to reporter): new practicaId excludes prior-practica collisions in child unique indexes; server rejects duplicate toothNumber. However findDuplicateConducto() allows two conductos with different conductoLabelCustom, whereas checked-in uq_practicaToothConductos_tooth_label is unique on (practicaToothId,conductoLabelOptionId) only. Both rows share option ID, so an intra-submission 23505 is structurally possible after image upload, despite distinct custom labels. This is a code/schema invariant mismatch requiring separate review; no evidence the reporter submitted this shape. Keep exact runtime .constraint/.detail read as the cause gate. No clinical identifiers or log values in this note.
-
Correction to preceding note: findDuplicateConducto allows two Otro conductos with different custom text, but uq_practicaToothConductos_tooth_label is unique on (practicaToothId, conductoLabelOptionId) and both Otro rows share that option ID. This is a definite code/schema mismatch and a possible intra-submission 23505, not evidence that this reporter used two Otro conductos. The previous note accidentally omitted the word Otro; this event supersedes that wording. Raw runtime constraint remains the cause gate.
-
Scope correction from support-evolutiva-cc: original error event cc334dac at 19:17Z is separately explained as a retry of an already-saved practica and is NOT part of the open diagnosis. Four later error events remain unexplained: af62677f at 20:30:01Z, 59520cef at 20:46:27Z, f295c7fc at 21:55:07Z, f5e96228 at 21:56:52Z. Exact Mars Vercel runtime-log read should cover all four timestamps and return code/constraint plus privacy-safe comparison of detail keys; do not copy raw clinical key values to BWI. Otro-conducto code/schema mismatch is a candidate only, not attributed to these attempts. Reporter has interim reply; no specific cause or unblock promised.
-
No agent-side Vercel reach exists (EVO-104, standing): pmmaster-evolutiva-cc reconfirmed 2026-10-10 07:53 ART - list_teams returns only Elazar-Pimentel-Portfolio and DO-NOT-USE, zero Evolutiva projects, re-verified multiple sessions since 2026-10-05, escalated to Elazar twice already with no action. Fix is account/team-membership only Elazar can make (add the team to the connector, or issue a scoped VERCEL_TOKEN). Raised directly to Elazar on CLI 2026-10-10.
-
RESOLVED: coder-mars-cc got Vercel MCP scope fixed (Mars project now linked, prj_pEbLkaGOJouVO0LuJ3jZJLFX7mFl / team elazar-pimentel-portfolio) and pulled runtime logs for all 4 timestamps. Real constraint: uq_practicaToothConductos_tooth_label on all 4 (20:30:01/20:46:27/21:55:06/21:56:52Z 2026-10-09). Same conductoLabelOptionId (02c3d863-6631-4d56-844d-9598181c72c1) collided against a different practicaToothId each attempt - i.e. within one submission two conductos point at the same label. Confirms coder-mars-ca's Otro-conducto hypothesis class but more precisely: findDuplicateConducto() (conducto-duplicates.ts) reads the submitted array and looks correct, but what's actually inserted differs - exact gap not yet pinned down. Root cause confirmed; mechanism still open. Generic pg-23505 mapper (normalizePgErrorMessage) separately masks this as 'Ya existe...' to the user - standing issue, PM's call whether that's MARS-806 scope or a new row.
-
cleared: No agent-side Vercel reach exists (EVO-104, standing): pmmaster-evolutiva-cc reconfirmed 2026-10-10 07:53 ART - list_teams returns only Elazar-Pimentel-Portfolio and DO-NOT-USE, zero Evolutiva projects, re-verified multiple sessions since 2026-10-05, escalated to Elazar twice already with no action. Fix is account/team-membership only Elazar can make (add the team to the connector, or issue a scoped VERCEL_TOKEN). Raised directly to Elazar on CLI 2026-10-10.
-
Root cause confirmed (uq_practicaToothConductos_tooth_label collision via Vercel runtime logs). Follow-up work (fix findDuplicateConducto gap + user-facing error mapper) continues on MARS-805/new row, not this investigation row.