Troubleshooting
Encountering an issue? This guide covers the most common problems and how to resolve them. If you can't find your answer here, contact our support team.
Upload Failures
413 — File Too Large
The uploaded file exceeds the maximum allowed size (default: 20 MB per image). Reduce the file size or configure a higher limit if your plan supports it.
415 — Unsupported Media Type
The file type is not accepted. Check the allowed_mime_types parameter on your session. By default, only image types (JPEG, PNG, WebP, HEIC) are allowed.
422 — Session Full
The session has already reached its max_images limit. Create a new session if more uploads are needed.
500 — Server Error
An unexpected error occurred on our end. This is rare and usually resolves within minutes. Check the Apertur status page for ongoing incidents.
Webhook Issues
Not Receiving Webhooks
If your endpoint isn't receiving webhook deliveries, check the following:
- Verify your webhook URL is publicly accessible (not behind a firewall or VPN).
- Ensure your endpoint responds with a 2xx status code within 30 seconds.
- Check the delivery logs in your project dashboard for error details.
- Confirm the session's delivery_mode is set to "webhook".
Signature Verification Failing
If signature verification fails on your end:
- Make sure you're using the raw request body (not a parsed or re-serialized version).
- Verify you're using the correct webhook secret for this project.
- Ensure you're comparing the full signature string including the "sha256=" prefix.
See the webhook signatures guide for implementation examples.
Duplicate Deliveries
In rare cases, Apertur may retry a delivery if the initial response was ambiguous (e.g., a timeout). Use the X-APTR-Delivery-ID header to deduplicate on your end.
QR Code Problems
Camera Won't Open
- Make sure the user has granted camera permissions to their browser.
- The upload page must be served over HTTPS (this is always the case with Apertur-hosted URLs).
- Try using a different browser (Safari on iOS, Chrome on Android).
- Clear the browser cache and try again.
- On iOS, ensure the camera is not restricted by Screen Time or MDM policies.
QR Code Shows an Error
- "Session expired" — the session has passed its
expires_attime. Create a new session. - "Session full" — the
max_imageslimit has been reached. - "Session not found" — the session ID in the URL is invalid. Verify the QR code was generated correctly.
Sharing QR Codes Across Devices
Each QR code links to a unique session URL. You can share this URL via SMS, email, or messaging apps instead of scanning — just send the qr_url value directly.
Session Expired
Sessions expire after the configured expires_in duration (default: 1 hour). Once expired, no more uploads are accepted.
How to Handle Expiration
- Increase the
expires_inparameter when creating sessions if users need more time. - Monitor session status and proactively create new sessions when needed.
- Inform your end-users about the time limit so they upload promptly.
Tip
For long-running workflows, set expires_in to up to 7 days (604800 seconds). Keep in mind that longer sessions may pose a higher security risk.
Rate Limiting
Apertur enforces rate limits to ensure fair usage and platform stability. If you exceed a limit, the API responds with 429 Too Many Requests.
| Endpoint | Limit |
|---|---|
| POST /api/v1/sessions | 60 requests per minute |
| GET /api/v1/sessions | 120 requests per minute |
| File uploads | 30 uploads per minute per session |
To handle rate limits gracefully:
- Check the
Retry-Afterheader for the number of seconds to wait. - Implement
exponential backoffin your retry logic. - Batch operations where possible to reduce request volume.
- Contact support if your use case requires higher limits.
Contact Support
If you've tried the steps above and still need help, our support team is here for you.
Before contacting support
Please include your project ID, the session ID (if applicable), the full error message, and the approximate time the issue occurred. This helps us investigate much faster.
Status Page
Check the Apertur status page for real-time information about platform availability and ongoing incidents.
Contact Form
Use our contact form to submit a detailed support request. Include your project ID, session ID, and any error messages to help us resolve your issue faster.
Was this article helpful?
Need more help? Contact our support team.