Assigned participant identities on reconnect
A private production recovery probe created and paired a room using valid UUID participant IDs. Its authenticated resume upgrade then returned 503. The same create/join/takeover/both-offline/recreate sequence passed in US West and Asia with the native game's p plus hexadecimal ID format.
The room-admission contract permits hyphens and up to 64 characters. After verifying that signed admission matched the hello, the relay applied its older 48-character alphanumeric filter and saved these valid identities as null. The reserved resume handshake correctly refused a participant whose recorded identity was missing. This also omitted those participants from the host heartbeat.
The relay now retains the already verified signed participant identity. Legacy unsigned-format validation stays unchanged. Ticket verification, exact hello binding, room/generation, signed subject and assigned-seat checks still apply; no identity is inferred from a client hint.
The new real HTTP/WebSocket regression first failed with the same 503, then passed UUID and maximum-length identities while replacing a still-connected old socket. All 27 targeted relay/admission/transport/activity checks, full hosted build and typecheck pass. Evidence: output-resume-identity-red.log, output-resume-identity-green.log, output-resume-build.log, output-resume-types.log.
Regional relay publication and live UUID verification remain to be completed. Drain each regional host and verify no active rooms before replacing it; this fix is not justification for interrupting a match. This is not a capacity or complete native-match certification.
