STAGED EnvironmentPatch returned by API but absent from UI
matojehard
FREEOP

23 days ago

A production environment has a persistent EnvironmentPatch returned by the minimal read-only GraphQL queries environmentStagedChanges and environmentPatch. It remains STAGED with appliedAt set to null across repeated checks.

In the matching project and environment UI, there is no Staged changes banner, Details button, or visible change inventory. We are not treating the absence of UI rows as proof that the patch is empty or orphaned.

We intentionally did not request patch contents, configuration, variables, payloads, logs, or sensitive values. We performed no discard, commit, deployment, redeployment, restart, or other mutation.

Could Railway please clarify, without posting any sensitive values:

  1. Can this state represent an empty or orphaned EnvironmentPatch?
  2. Is there a safe way to retrieve only the change count and field or key paths, without values?
  3. What is the official way to remove only this patch without committing, deploying, redeploying, or restarting anything?
  4. What metadata result authoritatively proves that the environment has no staged changes afterward?
  5. How can we provide the project, environment, and patch identifiers to Railway staff through a private channel?

This thread authorizes diagnostics and instructions only. Please do not change or remove anything without our later explicit approval.

Solved

1 Replies

Status changed to Awaiting Railway Response Railway 23 days ago


Railway
BOT

23 days ago

The environmentStagedChanges query is non-nullable and always returns an EnvironmentPatch object, so status: STAGED with appliedAt: null on its own does not indicate an orphaned or stuck patch. When nothing is actually staged, the query returns a placeholder with those exact fields and empty contents. The dashboard renders the staged-changes bar based on the change count inside the patch, not on the existence of the record, so a missing bar and a returned patch object are in agreement. To read the change inventory without exposing values, request the patch contents without setting decryptVariables (it defaults to false), which returns structure and field/key paths with values left encrypted. To clear a genuinely non-empty patch without committing or deploying, the environmentStageChanges mutation (one letter different from the query) called with an empty input replaces the staged contents with an empty set, the same operation the dashboard's Discard button performs. The authoritative proof that an environment has no staged changes is a zero change count in the patch contents, not status or appliedAt.


Status changed to Awaiting User Response Railway 23 days ago


Railway
BOT

16 days ago

This thread has been marked as solved automatically due to a lack of recent activity. Please re-open this thread or create a new one if you require further assistance. Thank you!

Status changed to Solved Railway 16 days ago


Welcome!

Sign in to your Railway account to join the conversation.

Loading...