Skip to content

Commit 0c1daed

Browse files
Browser Rendering: Add FAQ for troubleshooting missing page content (#27969)
* Add FAQ entry for troubleshooting missing page content Adds a new FAQ entry in Errors & Troubleshooting section explaining: - Why content might be missing (JS-heavy pages, SPAs) - When to use networkidle0 vs networkidle2 - Example REST API usage - Additional troubleshooting tips Also includes review suggestions from ToriLindsay: - Add 'Error:' prefix to error headings for consistency - Fix grammar and improve clarity - Add space in '500 ms' * Update faq.mdx --------- Co-authored-by: Kathy <153706637+kathayl@users.noreply.github.com>
1 parent 36ed113 commit 0c1daed

1 file changed

Lines changed: 55 additions & 25 deletions

File tree

  • src/content/docs/browser-rendering

src/content/docs/browser-rendering/faq.mdx

Lines changed: 55 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,61 @@ If you cannot find the answer you are looking for, join us on [Discord](https://
1818

1919
---
2020

21+
## Errors & Troubleshooting
22+
23+
### Error: Cannot read properties of undefined (reading 'fetch')
24+
25+
This error typically occurs because your Puppeteer launch is not receiving the browser binding. To resolve this error, pass your browser binding into `puppeteer.launch`.
26+
27+
### Error: 429 browser time limit exceeded
28+
29+
This error (`Unable to create new browser: code: 429: message: Browser time limit exceeded for today`) indicates you have hit the daily browser-instance limit on the Workers Free plan. [Workers Free plan accounts are capped at 10 minutes of browser use a day](/browser-rendering/limits/#workers-free). Once you exceed that limit, further creation attempts return a 429 error until the next UTC day.
30+
31+
To resolve this error, [upgrade to a Workers Paid plan](/workers/platform/pricing/) which allows for more than 10 minutes of usage a day and has higher [limits](/browser-rendering/limits/#workers-paid). If you recently upgraded but still see this error, try redeploying your Worker to ensure your usage is correctly associated with your new plan.
32+
33+
### Error: 422 unprocessable entity
34+
35+
A `422 Unprocessable Entity` error usually means that Browser Rendering wasn't able to complete an action because of an issue with the site.
36+
37+
This can happen if:
38+
- The website consumes too much memory during rendering.
39+
- The page itself crashed or returned an error before the action completed.
40+
- The request exceeded one of the [timeout limits](/browser-rendering/reference/timeouts/) for page load, element load, or an action.
41+
42+
Most often, this error is caused by a timeout. You can review the different timers and their limits in the [REST API timeouts reference](/browser-rendering/reference/timeouts/).
43+
44+
### Why is my page content missing or incomplete?
45+
46+
If your screenshots, PDFs, or scraped content are missing elements that appear when viewing the page in a browser, the page likely has not finished loading before Browser Rendering captures the output.
47+
48+
JavaScript-heavy pages and Single Page Applications (SPAs) often load content dynamically after the initial HTML is parsed. By default, Browser Rendering waits for `domcontentloaded`, which fires before JavaScript has finished rendering the page.
49+
50+
To fix this, use the `goToOptions.waitUntil` parameter with one of these values:
51+
52+
| Value | Use when |
53+
| ------------------ | ------------------------------------------------------------------------ |
54+
| `networkidle0` | The page must be completely idle (no network requests for 500 ms). Best for pages that load all content upfront. |
55+
| `networkidle2` | The page can have up to 2 ongoing connections (like analytics or websockets). Best for most dynamic pages. |
56+
57+
REST API example:
58+
```json
59+
{
60+
"url": "https://example.com",
61+
"goToOptions": {
62+
"waitUntil": "networkidle2"
63+
}
64+
}
65+
```
66+
67+
If content is still missing:
68+
- Use `waitForSelector` to wait for a specific element to appear before capturing.
69+
- Increase `goToOptions.timeout` (up to 60 seconds) for slow-loading pages.
70+
- Check if the page requires authentication or returns different content to bots.
71+
72+
For a complete reference, see [REST API timeouts](/browser-rendering/reference/timeouts/).
73+
74+
---
75+
2176
## Getting started & Development
2277

2378
### Does local development support all Browser Rendering features?
@@ -83,28 +138,3 @@ This applies to both the [REST API](/browser-rendering/rest-api/) and [Workers B
83138
For the [REST API](/browser-rendering/rest-api/), generated content is cached by default for five seconds (configurable up to one day via the `cacheTTL` parameter, or set to `0` to disable caching). This cache protects against repeated requests for the same URL by the same account. Customer-submitted HTML content itself is not cached.
84139

85140
For [Workers Bindings](/browser-rendering/workers-bindings/), no caching is used. Content exists only in memory for the duration of the rendering operation and is discarded immediately after the response is returned.
86-
87-
---
88-
89-
## Errors & Troubleshooting
90-
91-
### `Cannot read properties of undefined (reading 'fetch')`
92-
93-
This error typically occurs because your Puppeteer launch is not receiving the Browser binding. To resolve: Pass your Browser binding into `puppeteer.launch`.
94-
95-
### `Error processing the request: Unable to create new browser: code: 429: message: Browser time limit exceeded for today`
96-
97-
This error indicates you have hit the daily browser-instance limit on the Workers Free plan. [Free-plan accounts are capped at free plan limit is 10 minutes of browser use a day](/browser-rendering/limits/#workers-free) once you exceed those, further creation attempts return a 429 until the next UTC day.
98-
99-
To resolve: [Upgrade to a Workers Paid plan](/workers/platform/pricing/) which allows for more than 10 minutes of usage a day and has higher [limits](/browser-rendering/limits/#workers-paid). If you recently upgraded but still see this error, try redeploying your Worker to ensure your usage is correctly associated with your new plan.
100-
101-
### `422 Unprocessable Entity`
102-
103-
A `422 Unprocessable Entity` error usually means that Browser Rendering wasn’t able to complete an action because of an issue with the site.
104-
105-
This can happen if:
106-
- The website consumes too much memory during rendering.
107-
- The page itself crashed or returned an error before the action completed.
108-
- The request exceeded one of the [timeout limits](/browser-rendering/reference/timeouts/) for page load, element load, or an action.
109-
110-
Most often, this error is caused by a timeout. You can review the different timers and their limits in the [REST API timeouts reference](/browser-rendering/reference/timeouts/).

0 commit comments

Comments
 (0)