Repository navigation
[Support] Apply 499 and origin timeout review replacements - #34060
dpolaske-cloudflare wants to merge 3 commits into
Conversation
AI Review✅ Reviewed Commands
|
stechedo
left a comment
There was a problem hiding this comment.
Verified against the current published docs and log schema before approving:
CacheCacheStatusvalues (hit,stale,miss,bypass) match the http_requests dataset enum, and droppingdynamicfrom the support trigger is right since it can mean a security block rather than an expected origin fetch.OriginResponseDurationMsnow matches the published definition (first datacenter, Argo Smart Routing and Tiered Cache included) without the unverified recording-lifecycle claim.- Instant Logs
sampleIntervalguidance matches the Instant Logs docs. - The 19s/90s conditions are preserved and consistent across connection-limits, 522, 499, and 525.
#what-connection-means-hereand#keep-alivesanchors resolve, and the dedicated egress IPs and tunnel troubleshooting links are live. Stepsusage matches the component contract (wraps a markdown ordered list) and the repo-wide import pattern.- Everything raised in the #33662 review threads is reflected in the final text.
Approving from the support side. Three non-blocking comments below.
| No single field identifies the cause. Correlate these fields with matched request populations and request-linked evidence: | ||
|
|
||
| - **`OriginIP`** — identifies the origin IP recorded for the request. An absent value does not establish where the request stopped. A request served from cache may not require an origin fetch. An aborted or incompletely logged request may also lack an origin IP. Correlate this field with `CacheCacheStatus` and request-linked evidence. | ||
| - **`CacheCacheStatus`** — records cache disposition in the [HTTP requests dataset](/logs/logpush/logpush-job/datasets/zone/http_requests/). Values such as `hit` or `stale` indicate a cache-served response, where an absent origin IP may be expected. Values such as `miss` or `bypass` help identify requests to investigate. They do not establish that an origin connection was attempted or where an aborted request stopped. Collect request-linked and origin-side evidence before attributing a cause. |
There was a problem hiding this comment.
Non-blocking: since dynamic is now excluded from the contact-support criteria, consider a half-line here noting that dynamic means the request is not eligible for cache (which can include security blocks), so readers understand why it is not treated like miss or bypass.
| - **`CacheCacheStatus`** — the log field name for cache disposition in the [HTTP requests dataset](/logs/logpush/logpush-job/datasets/zone/http_requests/). If `OriginIP` is absent and `CacheCacheStatus` is HIT or STALE, the request was served from cache — the missing origin IP is expected. If `OriginIP` is absent and `CacheCacheStatus` is MISS or BYPASS, the cache phase indicates an origin fetch was expected; however, an aborted request may lack phase fields. Treat this combination as an unresolved phase and collect request-linked and origin-side evidence before attributing a cause. | ||
| No single field identifies the cause. Correlate these fields with matched request populations and request-linked evidence: | ||
|
|
||
| - **`OriginIP`** — identifies the origin IP recorded for the request. An absent value does not establish where the request stopped. A request served from cache may not require an origin fetch. An aborted or incompletely logged request may also lack an origin IP. Correlate this field with `CacheCacheStatus` and request-linked evidence. |
There was a problem hiding this comment.
Small wording nit: identifies the origin IP recorded for the request reads a bit circular. The origin IP recorded for the request would be cleaner.
| ### Resolution | ||
|
|
||
| - Contact your hosting provider and share the [error details](/support/troubleshooting/http-status-codes/cloudflare-5xx-errors/#required-error-details-for-hosting-provider) to assist in troubleshooting these common causes: | ||
| If you own the website, use these general checks: |
There was a problem hiding this comment.
I think it's safe to assume it's website owners that will land on this documentation. I would just remove this statement
| - Packets were dropped at your origin web server. | ||
| - Verify the configured origin address and port. Confirm the service is running and accepting connections. Review its capacity and logs for overload or connection limits, and review its [HTTP keep-alive settings](/fundamentals/reference/connection-limits/#keep-alives). | ||
| - Review firewall, security, rate-limiting, and network settings for your connection path. For standard proxied origin connections, check [Cloudflare's published IP ranges](https://www.cloudflare.com/ips/). For [Dedicated CDN Egress IPs](/smart-shield/configuration/dedicated-egress-ips/), check the addresses assigned to your setup. | ||
| - If geographic restrictions are configured, review the origin's permitted connection sources separately from [visitor-country WAF rules](/waf/custom-rules/use-cases/block-by-geographical-location/). Visitor filtering and origin reachability are different checks. |
There was a problem hiding this comment.
I feel this statement might be confusing. I'm not sure it helps to mention geographic restritction in its own bullet: the issue we see with that is that customers are restricting IPs connecting to their origin. So this check falls into the second point here.
There was a problem hiding this comment.
Yep, agreed. Let's take it out.
ngayerie
left a comment
There was a problem hiding this comment.
See comments from myself and Stephen
Apply changes from PR #34060 (dpolaske-cloudflare) into this branch. error-499.mdx: - Use <Steps> component for numbered investigation steps - Fix Logpush guidance: export full population, not 499-filtered only - Add sampleInterval note for Instant Logs rate calculation - Correct CacheCacheStatus value casing (miss/bypass, not MISS/BYPASS) - Soften 'Possible edge or network issue' table row - Clarify OriginResponseDurationMs measures time at first CF data center - Warn: do not infer failed phase from timing on 499 entries alone - Fix body bytes wording: zero bytes does not confirm pre-first-byte disconnect - Improve idempotency keys guidance - Update contact-support section with matched-cohort language connection-limits.mdx: - Add 'What connection means here' section clarifying TCP vs HTTPS setup - Rename 'Complete TCP Connection' to 'TCP connection establishment' - Rename 'TCP ACK Timeout' to 'TCP request acknowledgment timeout' - Note 19s/90s are not a universal TCP+TLS budget
Summary
Follow-up to #33662, targeting its source branch so these edits can be incorporated into the existing change.
Validation
Integration
The base is support/499-troubleshooting-improvements, not production. Merge this follow-up into that branch to include the replacements in #33662.