Skip to content

workflow-migrate atlas driver: panic on apply (Executor.Execute, index out of range [0] with length 0) #513

@intel352

Description

@intel352

Severity: HIGH — blocks atlas-driver upgrade flows

Source

Surfaced during core-dump P2 PR #149 round 2 CI run. Attempted `workflow-migrate up --driver atlas` against an ephemeral postgres-with-AGE container with the merged 232-file migrations corpus.

Symptom

```
panic: runtime error: index out of range [0] with length 0

goroutine 1 [running]:
ariga.io/atlas/sql/migrate.(*Executor).Execute(...)
```

Scope

  • Reproducible: yes (CI run https://github.com/GoCodeAlone/core-dump/actions/runs/25214000275)
  • Image: `ghcr.io/gocodealone/workflow-migrate:v0.3.6@sha256:b10ba85a...`
  • Driver: `atlas`
  • Same image + same driver, `down` subcommand WORKS (Gate 5 of migrations-ci.yml succeeds). So the bug is scoped to the apply (`up`) code path of the atlas executor.

Workaround

Gates 3 + 4 in core-dump's migrations-ci.yml are demoted to `continue-on-error: true` (advisory) until this is fixed. Once upstream lands a fix, the gates can be promoted to blocking via a small workflow tweak.

Suggested investigation

  • The panic location is `ariga.io/atlas/sql/migrate.(*Executor).Execute`. Look at what slice/array that function indexes at offset [0].
  • Suspect: revisions-table inspection or migration-set-by-version lookup that returns an empty slice when the table is freshly created.
  • Test: run `up` against a brand-new empty PG18 (no atlas_schema_revisions) — does the panic reproduce on the FIRST migration apply?

Filed

2026-05-01 from core-dump P2 implementer's round-2 investigation.

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions