Troubleshooting
Symptom → likely cause → fix for the most common issues across sign-in, the candidate experience, scoring, resumes, email, billing, integrations, and the Partner API.
If a fix here doesn't resolve your issue, contact support@cocolevio.com with the specifics (account email, job/candidate IDs, timestamps, and any error text).
Sign-in and two-factor
Can't sign in / "invalid credentials".
- Cause: wrong password, or the account uses SSO.
- Fix: use the exact email on the account; if your company set up Google/Microsoft SSO, use the SSO button instead of a password. Reset your password from the sign-in page if needed.
Account is locked.
- Cause: login anomaly detection flagged unusual activity (new location/device, repeated failures).
- Fix: wait and retry from your usual device/network, or contact support@cocolevio.com to unlock.
Two-factor code rejected.
- Cause: device clock drift, or an expired TOTP code.
- Fix: ensure your phone's time is set to automatic, then enter a fresh code. If you lost your authenticator, contact support to reset 2FA.
Candidate camera / microphone / screen issues
Camera or microphone not working at the start of the assessment.
- Cause: browser permission denied, or another app is using the device.
- Fix: grant camera and mic permission when prompted, close other apps using the camera (video-call tools), and reload the assessment link. Use a modern desktop browser (Chrome recommended).
Screen recording won't start.
- Cause: screen-share permission not granted, or an unsupported browser.
- Fix: accept the screen-share prompt and select the correct screen. Switch to an up-to-date desktop browser if the option doesn't appear.
Copy/paste doesn't work during the test.
- Cause: expected behaviour — copy/paste is intentionally blocked during assessments.
- Fix: none needed; candidates must type or speak their answers directly.
Report shows camera/mic as disabled (isVideoEnabled: false).
- Cause: the candidate declined permission or had no working device.
- Fix: this is a recorded integrity signal, not an error. A recruiter reviews it alongside the answers; it does not auto-reject. See Anti-cheat and proctoring.
Assessment not scoring / needs re-assessment
Report status stuck at "In Progress" or "Not Started".
- Cause: the candidate hasn't finished, or the assessment wasn't submitted.
- Fix: confirm the candidate completed and submitted all questions. Poll
GET /apikey/get_candidate_report/{p_candidate_id}untilassessment_statusisCompleted.assessment_resultpopulates only after completion.
assessment_result is empty even though status is "Completed".
- Cause: scoring may still be finalising, or answers were empty.
- Fix: re-fetch the report after a short delay. If answers exist but no scores appear, contact support with the candidate ID.
Scores look wrong for a spoken answer.
- Cause: transcription mis-heard technical terms.
- Fix: read the transcript in the report to confirm what was captured. Because AI scores are decision support, review the transcript/recording and adjust your judgement — the recruiter sets the verdict. See How AI scoring works.
Want to re-assess a candidate.
- Cause: you changed the role, skills, or question set.
- Fix: update the assessment (dashboard or
POST /apikey/update_assessment) and issue a new candidate link. Existing completed attempts keep their original results.
Resume not parsing
Contact extraction returns null name/email/phone.
- Cause: the PDF is a scanned image (no selectable text), or an unusual layout.
- Fix: use a text-based PDF (not a photo/scan). If the layout is atypical, extract fields manually or try AI parsing (
p-resume-parsing).
"Could not read PDF" / 422 error.
- Cause: the file is empty, not a PDF, or corrupted.
- Fix: re-export as a valid PDF and resend as
multipart/form-datawith thefilefield.
AI resume parsing fails or returns empty data.
- Cause: the parse failed, or your resume-token quota is exhausted (returns an error).
- Fix: check your token balance; top up if needed. Ensure
file,job_requirement, andskill_setare all sent. Retry with a cleaner PDF.
Email not received (invites / OTP / reports)
Candidate didn't get the assessment invite.
- Cause: email in spam, wrong address, or you shared the link out-of-band.
- Fix: the API returns the
assessment_linkdirectly fromprocess_candidate— you can send it yourself via any channel. Verify the candidate's email and ask them to check spam/junk.
One-time passcode (OTP) email not arriving.
- Cause: delivery delay or spam filtering (email is sent via AWS SES).
- Fix: wait a minute, check spam, and request a new code. Whitelist the Coco HR sender domain if your org filters aggressively.
Report notification not received.
- Cause: notification preference or spam filtering.
- Fix: fetch the report directly from the dashboard or
GET /apikey/get_candidate_report/{p_candidate_id}rather than relying on the email.
Payment / past-due
Account shows "past due" or features are limited.
- Cause: a Stripe payment failed (expired card, insufficient funds).
- Fix: update your payment method in the dashboard billing section; Stripe will retry. Contact support if access isn't restored after payment succeeds.
Metered API calls return an error about tokens.
- Cause: assessment or resume token quota exhausted.
- Fix: top up or wait for the quota to reset. Remember
p-parse-resume-contactuses no tokens if you only need contact details.
Greenhouse connection
Greenhouse integration won't connect or stops syncing.
- Cause: invalid or expired Greenhouse credentials, or revoked access.
- Fix: reconnect the integration from your dashboard settings with valid credentials/permissions. If it still fails, contact support@cocolevio.com.
Partner API errors
401 Unauthorized / "Invalid API key".
- Cause: missing header, wrong format, or a rotated (replaced) key.
- Fix: send the header exactly as
Authorization: ApiKey <your-api-key>(note the space and theApiKeyprefix). If you recently regenerated the key, update your integration — the old key stops working immediately. Retrieve the current key via the dashboard orGET /apikey/fetch-api-key.
400 on prepare_assessment — "assessment already exists".
- Cause: an assessment already exists for that
job_id. - Fix: use
POST /apikey/update_assessmentwith the samejob_idinstead.
400 on process_candidate — "applicant already exists".
- Cause: the same email is already registered for that
p_job_id. - Fix: reuse the existing candidate/link, or register with a different email.
404 on get_candidate_report.
- Cause: the
p_candidate_idwas never registered, or doesn't match what you sent toprocess_candidate. - Fix: use the exact same integer
p_candidate_idyou passed toprocess_candidate.
409 on delete_assessment.
- Cause: a candidate has already submitted this assessment.
- Fix: deletion is blocked to preserve the record; use
update_assessmentinstead.
422 on any request.
- Cause: malformed body or upload — for example non-integer IDs, or a missing/non-PDF file.
- Fix: ensure
job_id,p_job_id, andp_candidate_idare integers, and that multipart uploads include thefilefield. See the Partner API reference.
Need more help? Email support@cocolevio.com or see the FAQ.