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

    Fields

    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