Appearance
Errors
Owlflow returns request-level failures in GraphQL's top-level errors array. auth.createUser and viewer.updateUser return validation errors inside errors { code field message } and set success to false.
json
{
"errors": [
{
"message": "Authentication required",
"extensions": {
"code": "UNAUTHENTICATED",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}
]
}| Code | Meaning |
|---|---|
UNAUTHENTICATED | Missing or expired Bearer token. Call auth.refreshToken (within 7 days) or auth.login. |
FORBIDDEN | The student can't perform this action. |
BAD_USER_INPUT | A field or requirement failed validation. |
UPSTREAM_ERROR | Owlflow couldn't complete the call to its backend. |
INTERNAL | Unexpected server error. |
Field validation errors
When auth.createUser or viewer.updateUser fails validation, the mutation returns success: false and populates errors { code field message }:
| Field | Common cause | Fix |
|---|---|---|
email (EMAIL_ALREADY_EXISTS) | Email is already registered on your domain. | Sign the student in with auth.login. |
phone | Phone number is not in E.164 format. | Send country code and digits, such as "+14155550123". |
address.state, education.gpaOption | Display label or unmapped value. | Send values from references.dictionaries ("CALIFORNIA", "3.8"). |
dateOfBirth | Student is younger than 16. | Check references.dictionaries.profilePolicies.minAge. |
Each top-level error includes a requestId. Include requestId when contacting ScholarshipOwl so the team can trace the failed request.
Call health for a liveness check. Owlflow returns a string and doesn't access student data.
