Skip to content

Self-host: boot migration crashes on pre-specHash integrations ("has no specHash; serving state cannot be migrated") #1407

Description

@daviesayo

Summary

On self-host, the boot migration refuses to start when an integration was created by an older version that never recorded a specHash. The server exits on boot instead of backfilling, so any self-host upgrade past the version that introduced specHash hard-fails (on Railway the health check just rolls back).

Error

[executor] failed to start: Error: Monolith <id>/google/google has no specHash; serving state cannot be migrated
    at specHashFor (/app/apps/host-selfhost/dist-server/serve.js:208389:18)
    at planMigration (/app/apps/host-selfhost/dist-server/serve.js:208514:34)

Reproduce

# A /data volume with an integration created by an older self-host version → crash on boot
docker run --rm -v <existing-data>:/data -e EXECUTOR_DATA_DIR=/data \
  ghcr.io/rhyssullivan/executor-selfhost:1.5.32
# exits 1 with the error above

# A fresh /data volume → boots fine (generates secret.key/auth-secret.key, "Listening")
docker run --rm -v <empty-data>:/data -e EXECUTOR_DATA_DIR=/data \
  ghcr.io/rhyssullivan/executor-selfhost:1.5.32

Confirmed both cases against 1.5.32. The integration in my /data (a Google connection, plus a few OpenAPI/MCP ones) predates specHash.

Expected

planMigration should backfill (or tolerate a missing) specHash rather than throwing, so an existing self-host DB can migrate forward instead of being left un-bootable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions