Skip to content

Add Craft Cloud diagnostics guidance - #782

Open
timkelty wants to merge 8 commits into
mainfrom
timkelty/cloud-diagnostics-docs
Open

Add Craft Cloud diagnostics guidance#782
timkelty wants to merge 8 commits into
mainfrom
timkelty/cloud-diagnostics-docs

Conversation

@timkelty

@timkelty timkelty commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Made this a dedicated page, but its placement should probably be rethought or combined with https://craftcms.com/docs/cloud/troubleshooting.html

@netlify

netlify Bot commented Aug 17, 2026

Copy link
Copy Markdown

Deploy Preview for craft-docs ready!

Name Link
🔨 Latest commit 73720dc
🔍 Latest deploy log https://app.netlify.com/projects/craft-docs/deploys/6a844d3abf40490008b1d9f5
😎 Deploy Preview https://deploy-preview-782--craft-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@timkelty
timkelty force-pushed the timkelty/cloud-diagnostics-docs branch from 62d8048 to 9a8e0cb Compare August 17, 2026 20:10
@timkelty
timkelty force-pushed the timkelty/cloud-diagnostics-docs branch 2 times, most recently from 703104d to 9f94152 Compare August 17, 2026 20:24
@timkelty
timkelty force-pushed the timkelty/cloud-diagnostics-docs branch from 9f94152 to 3aab863 Compare August 17, 2026 20:29
@timkelty
timkelty force-pushed the timkelty/cloud-diagnostics-docs branch 3 times, most recently from 962906a to 1ed53b2 Compare August 17, 2026 22:30
@timkelty
timkelty force-pushed the timkelty/cloud-diagnostics-docs branch 15 times, most recently from 7528ccf to e2593ce Compare August 18, 2026 12:05
@timkelty
timkelty force-pushed the timkelty/cloud-diagnostics-docs branch 3 times, most recently from 32ab799 to 352f45a Compare August 18, 2026 12:07
@timkelty
timkelty force-pushed the timkelty/cloud-diagnostics-docs branch from 352f45a to 73720dc Compare August 18, 2026 12:16
@timkelty
timkelty marked this pull request as ready for review August 18, 2026 12:33
@timkelty
timkelty requested a review from a team as a code owner August 18, 2026 12:33

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 73720dcb4d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/cloud/diagnostics.md
| `400/403/413` | `x-gateway-flow: /origin/reject` | Detected invalid or malicious request. |
| `401` | `x-gateway-http-signature: unverified` | The signature was invalid or expired. |
| `404` | `x-gateway-flow: /` | Hostname did not match a Craft Cloud environment. |
| `429/503` | `Retry-After: 𝑛` | Automate retry, honoring `Retry-After`. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Limit automatic retries to safe requests

For non-idempotent requests such as GraphQL mutations or form submissions, automatically retrying every 429 or 503 carrying Retry-After can repeat side effects if the first attempt was partially processed. This also conflicts with docs/cloud/headless-apps.md:23-26, which requires bounded retries and permits retrying POST only for read-only queries; qualify this guidance accordingly rather than recommending unconditional automation.

Useful? React with 👍 / 👎.

Comment thread docs/cloud/diagnostics.md
| `401` | `x-gateway-http-signature: unverified` | The signature was invalid or expired. |
| `404` | `x-gateway-flow: /` | Hostname did not match a Craft Cloud environment. |
| `429/503` | `Retry-After: 𝑛` | Automate retry, honoring `Retry-After`. |
| `500/502` | No `x-gateway-flow: /origin/fetch` | A gateway error occurred; contact support if it persists. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Distinguish absent flow headers from non-origin flows

When a 500 or 502 response has no x-gateway-flow header at all, it matches both this row and the final 5xx row: this row classifies it as a gateway error, while line 41 says it occurred before the gateway. That is precisely a common diagnostic scenario, so require a present non-/origin/fetch flow value here or otherwise make the two conditions mutually exclusive.

Useful? React with 👍 / 👎.

Comment thread docs/cloud/diagnostics.md

- `cf-*`: Cloudflare
- `x-gateway-*`: Craft Cloud gateway
- All others: origin (Craft)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Avoid attributing every unprefixed header to Craft

This exhaustive attribution is incorrect for intermediary-generated standard headers. In particular, Craft Cloud's gateway and capacity-limiting paths can emit the unprefixed Retry-After used later on this page, and Cloudflare or the gateway may also add or rewrite fields such as Date, Server, and Content-Length; readers could therefore misidentify the response layer. Restrict this statement to known origin headers instead of treating every non-cf-*/x-gateway-* header as origin data.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant