Invalid Execution Id Rgh Direct
ERROR: invalid execution id rgh
rgh was the ghost. The error “invalid execution id rgh” was not a bug. It was a scar. A topological defect in the system’s understanding of itself. It revealed that the orchestrator and the worker disagreed on what constituted “existence.” For the worker, rgh was real—it had CPU cycles, memory allocations, a non-zero exit code. For the orchestrator, rgh was a stray piece of cosmic debris, a neutrino passing through the earth of its database without interaction.
Not in the application logs. Not in the worker logs. In the audit log of a sidecar proxy—a small, overlooked Envoy instance running on a node that had been scheduled for retirement six months ago. The entry read:
For three days, this error had halted a critical deployment. For three days, Alex had scoured logs, reams of documentation, and dark corners of GitHub issues. “Invalid execution id” was common enough—a token for a dead process, a phantom job, a handle to nothing. But the suffix was the knife twist: rgh . invalid execution id rgh
And somewhere, deep in the logs of a decommissioned node, a single line remains, unseen by any human, as eternal as any byte can be:
Parent timed out. The job had a parent. And the parent had died without telling the child. The rgh execution was not invalid because it was malformed. It was invalid because its reason for being—the upstream request, the triggering event, the user who clicked “deploy”—had ceased to exist. The child process, a data transformation task, had completed successfully. It had written its output to a temp bucket. It had logged FINISHED . But when it tried to report its status to the parent, there was no one listening.
But execution IDs are not immortal. They expire. They get garbage-collected. They are wiped from Redis caches during a midnight failover. And when a client—innocent and oblivious—presents that ID again, asking, “What happened to my job?” the system does not apologize. It does not explain. It simply says: invalid . ERROR: invalid execution id rgh rgh was the ghost
Alex chose the latter. With a heavy heart, they wrote:
At 3:47 AM, they found it.
Four ghosts laid to rest. The strange case of invalid execution id rgh is a parable about the limits of idempotency. We build systems that are supposed to be reliable, deterministic, replayable. But reality is messier. Processes die. Parents abandon children. UUIDs get truncated. And sometimes, the only record of a job well done is a three-letter code that no living engineer can explain. A topological defect in the system’s understanding of
[info] execution rgh-92f3a1: finished, but never known.
This kind of disagreement is terrifying because it cannot be fixed with a retry. A retry assumes the error is transient. But rgh was not transient. It was permanent. The parent was dead. The link was severed. The only way out was manual intervention: a database query to reattach the orphaned record, or a script to acknowledge the output and delete the evidence.
