This patch release fixes a bug where legitimate instances were rejected when re-activating after a restart.
Bug fix
Instance activation is now idempotent
SDK clients replay /v1/activate on every process restart, but the server's status state machine only allowed pending ? active. An already-active instance was therefore rejected with invalid status transition: cannot activate from status active, surfacing as HTTP 500 responses and activation failed ERROR logs on every client restart ? pure noise that could mask real activation failures.
- Re-activating an already-active instance now succeeds (HTTP 200) and refreshes the instance heartbeat (
LastSeenAt). - The state machine stays strict: revoked instances still cannot be reactivated.
- No SDK update required ? already-deployed clients benefit as soon as the server is redeployed.
Under the hood
Instance.Activate()(internal/domain/instance.go) short-circuits when the instance is already active, treating the call as a heartbeat instead of an invalid transition.- Test coverage updated across the domain and application layers, including a new rejection test for
revoked ? active.
Full Changelog: v1.2.6...v1.2.7