Free tools Windows power users keep installed
One-click scans. No signup required.
Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
There is no universal “Web Capture SDK” error list. First identify which SDK you use, its exact version, the operation that failed, the browser and version, and the exact error name or code. A bug-report widget that will not load, a scanner that cannot access a camera, and a document-capture session rejected by a server have different causes and remedies.
Use the vendor’s documented error meanings and lifecycle hooks, then check the browser and network conditions around the failure. The examples below show how to diagnose three distinct SDKs without treating one vendor’s codes as universal.
Start by identifying the failure precisely
Before changing permissions, retrying requests, or swapping browsers, record the information that makes an error actionable. The same visible symptom—such as a blank capture panel—can result from a script that never loaded, a blocked iframe, a failed initialization, or a runtime error after startup.
- SDK and version: Record the vendor, package or script version, and the browser version. For example, Scanbot’s current documentation navigation labels its Web SDK as v9.0.0; IDEMIA’s cited Document WebCapture reference is version 3.9. Error names and status rules may differ across releases.
- Failed operation: Note whether the script failed to load, initialization rejected, a scanner failed to start, a camera stream was requested, or a backend session operation failed.
- Original error: Preserve the exact error name, code, message, rejected Promise, callback payload, and relevant HTTP response. Do not reduce a specific error to “capture failed.”
- Browser evidence: Check the developer console and Network panel for blocked requests, policy violations, failed responses, and timing. Capture.dev specifically recommends checking developer tools when its widget does not appear.
- Privacy: Keep personal data, document images, credentials, and session secrets out of routine logs. Retain only the diagnostic fields needed to investigate the failure.
Make a minimal reproduction if possible: the same page, SDK version, operation, browser, and permissions, with unrelated code removed. This helps distinguish a repeatable configuration problem from an intermittent network or user outcome.
#1 Best Overall
Check loading, initialization, and browser policies
Verify the SDK loaded in the intended order
For a widget that does not appear, first confirm its script request completed and its configuration was set before initialization. Capture.dev’s installation guide requires setting window.captureOptions with the team capture key before loading its asynchronous script. The guide says this client-side capture key is designed to be public; do not generalize that statement to API secrets or other products.
Check the actual script URL, response status, console output, and whether the expected initialization code ran. If configuration is undefined or arrives after an async script has started, correct the order rather than repeatedly refreshing the page.
Look for Content Security Policy blocks
A Content Security Policy (CSP) can prevent a widget’s script or iframe from loading. Capture.dev’s troubleshooting guidance identifies its script host under script-src and its widget host under frame-src. Those are Capture.dev-specific origins, not a general allowlist for capture SDKs. Use the hosts documented by the vendor actually installed, and allow only the sources your deployment requires.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Use the browser console to identify the directive and blocked origin. Update the relevant policy, deploy it, and verify the request is permitted; do not disable CSP wholesale as a debugging fix.
Rank #2
- HTML CSS Design and Build Web Sites
- Comes with secure packaging
- It can be a gift option
Check Permissions Policy separately
Some failures are caused by the page’s Permissions Policy rather than the SDK itself. Capture.dev lists camera, microphone, clipboard write, and display capture as browser capabilities that policy restrictions can block. Determine which API the product and operation need, inspect the response’s policy header and console message, and permit only the required capability for the appropriate origin or frame.
Diagnose camera-dependent SDKs by error category
Camera-based capture is only one kind of web capture SDK. When the product uses the browser’s media APIs, separate browser support, permission, and device availability instead of treating them as one generic “camera error.” Consult the installed SDK’s browser support matrix and deployment requirements before telling a user to change devices or browsers.
Scanbot Web Data Capture: startup and runtime handling
Scanbot documents typed errors for its Web Data Capture SDK. Among the named startup failures are MediaPermissionError when camera permission is denied, UnsupportedMediaDevicesError when the browser’s mediaDevices API is unavailable, and MediaNotAvailableError when a matching media device cannot be found. The name points to a different next step: request permission, verify browser support, or check device availability, respectively.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteCatch rejection at the documented startup point, and register the SDK’s runtime error handler for failures after a scanner has successfully started. A startup try/catch alone will not handle later errors delivered through a callback.
Rank #3
// Illustrative handling pattern: use the constructor and callback names
// documented for the installed Scanbot Web SDK version.
try {
const scanner = await createScanner();
scanner.onError((error) => {
console.error("Scanner runtime error", error.name, error.code);
showCaptureError(error);
});
} catch (error) {
console.error("Scanner startup error", error.name, error.code);
showCaptureError(error);
}
Important: createScanner, onError, and showCaptureError above illustrate where to handle startup and runtime errors; they are not a copy-paste Scanbot API implementation. Use the exact methods and types documented for your installed version. Preserve the error identity in diagnostics, while showing users a useful next action, such as granting camera permission or using a supported browser.
IDEMIA Document WebCapture: inspect the stream callback
IDEMIA’s Document WebCapture 3.9 example exposes an error callback on its device-stream request. If the stream cannot be obtained, inspect that callback’s payload and the SDK’s documented browser and device requirements. Do not assume its callback structure or error codes apply to another vendor.
Handle backend errors and user outcomes differently
A server response, an invalid request, a missing session, a temporary overload, and a user who cancels are not interchangeable. IDEMIA’s Document WebCapture 3.9 reference assigns the following meanings to its documented codes; these meanings and recovery directions apply to that reference, not to web capture SDKs generally.
| IDEMIA 3.9 code or status | Meaning in that reference | Handling direction |
|---|---|---|
| 400 | Invalid input | Validate and correct the request; do not blindly resend unchanged input. |
| 404 | Session not found | Check session creation, identifier, and lifecycle before continuing. |
| 409 | Mandatory native integration datum was not pushed | Correct the required integration state and follow the documented sequence. |
| 500 / 2000 | Internal errors | Investigate the response and server-side failure; retain the code and request context for support. |
| 503 | Server overload | The reference advises retrying after a few seconds. Apply this only where the SDK’s current retry and idempotency guidance permits it. |
| 1304 | No active video stream | Check the stream state and device-stream lifecycle rather than treating it as a generic server error. |
The same IDEMIA reference separately lists statuses DONE, FAILED, TIMEOUT, ABORTED, and ERROR. Keep timeout and cancellation distinct from technical failure in the UI: offer a clear retry or exit path, and do not tell users their capture failed technically if they chose to abort.
Rank #4
- Brand: Wiley
- Set of 2 Volumes
- A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers
Use a symptom-to-check troubleshooting path
| Symptom | First checks | Next action |
|---|---|---|
| Widget or SDK is absent | Script request and response, configuration timing, console, CSP directives | Fix the load or policy issue using the installed SDK’s documented origins, then retest. |
| Browser API is blocked | Permissions Policy header, frame context, console messages | Permit the required API for the correct origin; avoid broad policy exceptions. |
| Scanner will not start | Browser support, mediaDevices, permission state, device availability |
Handle the named startup rejection and give a remedy matched to its category. |
| Error occurs after startup | Runtime callback registration and callback payload | Handle the documented runtime event as well as initialization rejection. |
| Session or backend request fails | Input validation, session existence, required integration data, response code | Correct invalid state for 400/404/409; investigate internal errors; treat overload according to vendor retry rules. |
| User times out or cancels | Result status and operation state | Offer retry or exit and preserve the distinction between timeout, abort, and technical error. |
Make error handling useful to users and maintainers
Map vendor errors to user guidance without discarding the original diagnosis. A user-facing message should say what to do; an internal diagnostic record should retain the SDK version, operation, error name or code, browser, and relevant request outcome. Avoid logging captured content or secrets.
- For permission denial: Explain how to enable camera permission in the browser or operating system, then let the user retry.
- For unsupported APIs: Direct the user to a browser and version supported by the installed SDK; do not promise support without checking its current matrix.
- For an unavailable device: Ask the user to check that a suitable camera is connected, enabled, and not unavailable to the browser.
- For invalid input or missing state: Fix request construction or session sequencing rather than adding automatic retries.
- For temporary service overload: Follow vendor retry and idempotency instructions. A retry that creates a second session or submits a duplicate operation can make recovery worse.
If the same client-side failure occurs only in production or intermittently, correlate console and runtime errors with the affected browser, deployment, policy, and network response. Error monitoring can help collect that evidence; it does not replace the SDK’s own lifecycle and retry rules.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Compare SDK error handling before adopting one
If you are choosing between capture SDKs, compare the documented behaviors that determine whether failures can be diagnosed and recovered, rather than comparing error-name counts.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →- Which browsers and versions are supported, and which browser APIs or permissions are required?
- Are startup errors typed and distinguishable from runtime errors?
- Does the SDK document both Promise rejection handling and post-start callbacks?
- Are session states and user outcomes such as timeout or cancellation explicit?
- Does the vendor document when a failure can be retried, and whether the operation is safe to repeat?
Or skip the browser setup
If your task is taking a website screenshot rather than integrating an interactive camera, document-scanning, or bug-reporting SDK, ScreenshotNeo is a website screenshot API and MCP server for developers. It is not a fix for another vendor’s SDK errors. One GET request can return a PNG, JPEG, WebP, or PDF; the API accepts common screenshot parameter names used by other services.
Best Value
cURL example (replace the target URL and API key):
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for parameters and response details. Before the shot, it accepts cookie or consent banners as a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers report the page verdict and whether the request was billed. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients.
ScreenshotNeo includes 1,000 screenshots a month free with no card; paid plans start at $5 for 3,000. Sign up for ScreenshotNeo and start with the free monthly allowance.
Frequently Asked Questions
Does a Web Capture SDK error always mean the camera is broken?
No. A widget script can be blocked by CSP, a browser API can be restricted by Permissions Policy, or a session request can fail independently of camera hardware.
What does MediaPermissionError mean?
In Scanbot Web Data Capture documentation, it means camera permission was denied. Other SDKs may use different error names or meanings.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

