Get started API reference What it can picture Plans and limits Using the picture When a feed fails Paying
When a feed fails
What each error means and what to do. The address keeps serving the last good picture while a feed fails.
Where to look
GET /api/feeds/{id} (or the dashboard) shows status:
| state | meaning |
|---|---|
pending | nothing has been tried yet, or nothing has succeeded and nothing has failed. A push feed stays pending until you send its first picture. |
ok | the last attempt made a picture. If partial is true, the page had not finished loading when it was taken. |
failing | the last attempt failed. error is the code below and detail adds words. |
A feed that fails is tried again after a wait that doubles each time, up to an hour (or the feed's own refresh time, if that is longer). To try now, POST /api/feeds/{id}/render; it clears the wait. Before the first picture exists, the address answers 404 no_image_yet.
Errors
| error | what it means | what to do |
|---|---|---|
http_403, http_404, http_500, and so on | the page answered with that error status | 404: check the address. 403 or 429: the site refuses visitors from data centres; push a picture instead. 5xx: the site is down or broken; it will be tried again. |
timeout | no answer in time (30 seconds for a page; for a camera, no frame in time) | check the site or camera is up and reachable from the internet |
blocked_egress | the address, or one it redirected to, is not allowed. detail says why: bad_port (a port outside 80, 443, and 1024 to 65535), private_addr or own_address (a private or local address), deny_name or bad_host (a name that is not allowed or not valid) | use a public address on an allowed port. For a private dashboard, push the picture. See What it can picture. |
dns_fail | the name does not exist | check the spelling and that the name is public |
connect_failed | the name exists but nothing answered on that port | check the site or camera is up and the port is open to the internet |
egress_cap | the page itself, or a redirect it follows, was refused after the render passed 300 requests or 50 MB. A page that passes the limit only partway through loses the pieces that came after, and is reported ok | if a picture is missing pieces, use a lighter page or one that shows less |
nav_error | the browser could not open the page; detail has the browser's own words | read the detail for the browser's reason |
no_response | the address gave no page (a file to download, for example) | point the feed at a page |
blank | the page loaded but every pixel was one colour | wait longer with wait_s; if a blank page is right, set allow_blank to true |
browser_timeout, browser_died, browser_error | the browser stopped answering, or ended (it has a memory limit and a time limit of 44 seconds) | a very heavy page can hit the limit: try the 1080p canvas, or a lighter page. If a simple page does this, tell us. |
launch_failed | the browser or camera tool could not start on our side | it is tried again; if it stays, tell us |
camera_error | the camera gave no frame; detail has the tool's words | check the address, user and password, and that the stream is RTSP over TCP or MJPEG; see which streams work |
compose_failed | a camera frame could not be drawn to your canvas | it is tried again; if it stays, tell us |
band_failed | the home-page try-out only: the picture could not be given its band, so it is not shown | ask again; a feed is not affected |
bad_image | the camera gave something that is not a picture | check the address is the camera's video stream; if it stays, tell us |
bad_url | the address cannot be used as it stands | correct the address with PATCH /api/feeds/{id} |
quota | the plan's storage is full | delete a feed you do not need |
internal | a fault on our side | it is tried again; if it stays, tell us |
To tell us: write to [email protected] with the feed's id and the error and detail it shows. Never send a camera password or an API key.