The new version passed the health check but fails on other routes
Fix
No migration in that version: click “Quay về bản trước” (roll back), see Rollback. With a migration: rollback is refused (ROLLBACK_INCOMPATIBLE), fix the code and push
Verify
embra metrics --env <project>/<env>: error rate back to the level before the deploy marker; embra logs --env <project>/<env> clean
The deploy doesn’t go live, the old version still runs
The new version fails the health check (HEALTHCHECK_FAILED): wrong PORT, health_path returns an error, missing env var, crash on start
Fix
Read the “Nội dung từ app — không do Embra viết” (content from your app) block and the app log, fix, push
Verify
The new deploy reaches “Deploy thành công” (deployed)
Console says “Migration đã áp, code mới chưa chạy” (migration applied, new code not running): the schema changed and the old code is running on the new schema. Fix the new code and push; don’t rush a reverse migration.
Remove the column reference from the code and push. Need the column back: a new migration with ADD COLUMN (nullable). Need the column’s data back: only from an export taken before the migration
Finding the point: the whole second just before the bad statement started. Deploy, migration and cron markers are in embra events --env <project>/<env> and the logs.
The point must be inside embra db restore-points.
Verify: undo: embra db undo run <session_id> shows incident_update at 0. Restore: the estimated row counts on the operation page match what you expect before you click “Chuyển sang bản này” (switch).
The _embra-challenge TXT record was removed: Embra rechecks every 24 hours and stops serving the domain after 3 misses in a row. Or DNS no longer points to Embra