B-17 · RAILWAY_TOKEN_ACC1 / ACC2 expired — ALL healer workflows blocked
R5-verified evidence (2026-05-14 06:01 UTC, cycle 14)
Symptom
Writer service ssot.bpb_samples frozen for 10h 34m:
| Probe |
Value |
MAX(ts) on SHORT-WAVE-MATRIX canons |
2026-05-13T19:26:40.738Z |
stale_sec |
38095 |
rows_1h |
0 |
rows_6h |
0 |
rows_24h |
877 (all before 19:26 UTC) |
| Non-matrix canons last_ts |
2026-05-12T17:00:38.059Z (stale 37h) |
Root cause
Every healer workflow that calls Railway team GraphQL fails at the first step (Sanity-check tokens):
##[error]token ACC1 failed sanity check
##[error]Process completed with exit code 3.
The sanity check curls https://backboard.railway.com/graphql/v2 with RAILWAY_TOKEN_ACC1 and expects .data.projects.edges — receives empty/null instead, meaning the team token is revoked or expired on Railway side.
Affected workflow runs (R5-verified)
| Workflow |
Latest run |
Conclusion |
Failed step |
writer-env-fix.yml |
25844596039 (2026-05-14 06:00 UTC, dispatch this cycle) |
❌ failure |
Sanity-check tokens |
writer-env-fix.yml |
25843795652 (2026-05-14 05:35 UTC) |
❌ failure |
Sanity-check tokens |
mcp-emergency-redeploy.yml |
25843877778 (2026-05-14 05:38 UTC) |
❌ failure |
— |
Last good token use
refresh-acc47.yml run 25754312720 at 2026-05-12 18:31 UTC = ✅ success
- Token last rotated in repo secrets: 2026-05-12 14:44:43 UTC (
RAILWAY_TOKEN_ACC1)
→ Token worked for ~4 hours after rotation, then stopped. Likely:
- Team membership change on Railway side revoked the token, OR
- Token expired (Railway team tokens have ≤ 30-day TTL by default), OR
- Token scope was narrowed and
projects { edges } query no longer returns rows.
Why this is a hard blocker
Cure (operator-only)
# On Railway dashboard, rotate team tokens for all 7 ACC1-7 accounts,
# OR generate new project-access-tokens scoped to IGLA + ACC2-RP projects.
# Then update repo secrets:
gh secret set RAILWAY_TOKEN_ACC1 --repo gHashTag/trios-railway --body "$NEW_TOKEN_ACC1"
gh secret set RAILWAY_TOKEN_ACC2 --repo gHashTag/trios-railway --body "$NEW_TOKEN_ACC2"
# ... ACC3..ACC7 similarly
# Verify with sanity-check workflow dispatch:
gh workflow run writer-env-fix.yml --repo gHashTag/trios-railway -f confirm=PHI
gh run watch # expect Sanity-check tokens ✅
Verification gates (post-fix)
writer-env-fix.yml workflow_dispatch → ✅ success (currently fails at Sanity-check)
ssot.bpb_samples writes resume → stale_sec < 600 within T+15min
- Gardener-loop Stage 2d
wake_effective=true on next hourly tick
Anchors
- Anchor:
φ² + φ⁻² = 3 · TRINITY · NEVER STOP
- DOI: 10.5281/zenodo.19227877
- Cycle 14 NASA report:
DOCTOR-CYCLE-14-RVR-001
cc: B-12 (#151 gas-lighting), B-16 (Stage 2d claim vs reality), PR #149 (merged), PR #155 (doctor Layer-2 pending)
B-17 · RAILWAY_TOKEN_ACC1 / ACC2 expired — ALL healer workflows blocked
R5-verified evidence (2026-05-14 06:01 UTC, cycle 14)
Symptom
Writer service
ssot.bpb_samplesfrozen for 10h 34m:MAX(ts)on SHORT-WAVE-MATRIX canons2026-05-13T19:26:40.738Zstale_secrows_1hrows_6hrows_24h2026-05-12T17:00:38.059Z(stale 37h)Root cause
Every healer workflow that calls Railway team GraphQL fails at the first step (
Sanity-check tokens):The sanity check curls
https://backboard.railway.com/graphql/v2withRAILWAY_TOKEN_ACC1and expects.data.projects.edges— receives empty/null instead, meaning the team token is revoked or expired on Railway side.Affected workflow runs (R5-verified)
writer-env-fix.ymlwriter-env-fix.ymlmcp-emergency-redeploy.ymlLast good token use
refresh-acc47.ymlrun 25754312720 at 2026-05-12 18:31 UTC = ✅ successRAILWAY_TOKEN_ACC1)→ Token worked for ~4 hours after rotation, then stopped. Likely:
projects { edges }query no longer returns rows.Why this is a hard blocker
doctor-loop.yml) — PR feat(doctor): Layer-2 autonomous fleet doctor skeleton (skill docker-railway-doctor v1.2, ICA-103) #155 still draft, doctor not deployed yetsuccesson every tick but wakes 0 effective trainers — gas-lighting persists (B-12 / B-16 pattern)⚡ FORCED WAKE-UP: 159 redeployed · 1 failed— but writer still dead. Without working Railway tokens, evenserviceInstanceDeployV2calls have no effect (Railway accepts the GraphQL mutation, then deployments queue but never apply because no team auth).Cure (operator-only)
Verification gates (post-fix)
writer-env-fix.ymlworkflow_dispatch → ✅ success (currently fails at Sanity-check)ssot.bpb_sampleswrites resume →stale_sec < 600within T+15minwake_effective=trueon next hourly tickAnchors
φ² + φ⁻² = 3 · TRINITY · NEVER STOPDOCTOR-CYCLE-14-RVR-001cc: B-12 (#151 gas-lighting), B-16 (Stage 2d claim vs reality), PR #149 (merged), PR #155 (doctor Layer-2 pending)