This guide helps you diagnose and resolve common issues when using Eden-MDBS.
Symptoms: API returns 401 status code with "Unauthorized" error.
Possible Causes:
- Check if your JWT token has expired
- Solution: Refresh your token or re-authenticate
- Ensure you're including the header: Authorization: Bearer
- Verify username and password are correct
- Check for typos or extra whitespace
Diagnosis:
# Check token expiry (decode the payload)
echo "<your_token_payload>" | base64 -d | jq '.exp'
# Compare with current timestamp
date +%sSymptoms: API returns 403 status code.
Possible Causes:
- You have a valid token but lack permission for the operation
- Solution: Request higher access level from an Admin
- You may have organization access but not endpoint-specific access
- Solution: Ask Admin to grant access to the specific resource
Diagnosis:
# Check your access level for an endpoint
curl http://{host}:8000/api/v1/iam/rbac/endpoints/{endpoint_id}/subjects \
-H "Authorization: Bearer $TOKEN"Symptoms: Queries fail with connection timeout errors.
Possible Causes:
- Network connectivity issues
- Firewall blocking connections
- Database server is down
- Wrong host, port, or database name in endpoint config
Solutions:
Symptoms: Requests fail with "connection pool exhausted" error.
Possible Causes:
Solutions:
Symptoms: Endpoint operations fail with connection refused.
Possible Causes:
Solutions:
Symptoms: Query fails with syntax error message.
Possible Causes:
Solutions:
$1, $2, $3 placeholders for PostgreSQL? placeholders for MySQLExample Fix:
# Wrong - string concatenation
{"query": "SELECT * FROM users WHERE id = 123"}
# Correct - parameterized
{"query": "SELECT * FROM users WHERE id = $1", "params": [123]}Symptoms: Query fails with "wrong number of parameters" error.
Possible Causes:
params doesn't match placeholders in querySolution:
# Query has 3 placeholders, provide 3 params
{
"query": "SELECT * FROM users WHERE status = $1 AND role = $2 LIMIT $3",
"params": ["active", "admin", 10]
}Symptoms: Query fails with "column does not exist" error.
Possible Causes:
Solutions:
Symptoms: Transaction fails and all operations are rolled back.
Possible Causes:
Solutions:
Symptoms: Transaction fails with deadlock error.
Possible Causes:
Solutions:
Symptoms: Template execution fails with "not found" error.
Possible Causes:
Solution:
# List available templates
curl http://{host}:8000/api/v1/templates \
-H "Authorization: Bearer $TOKEN"Symptoms: Template execution fails with missing parameter error.
Possible Causes:
Solution:
# Check template to see required parameters
curl http://{host}:8000/api/v1/templates/{template_id} \
-H "Authorization: Bearer $TOKEN"Symptoms: Template fails with parsing error.
Possible Causes:
Solution:
{{ or }}{{#if}}...{{/if}})Symptoms: Queries take longer than expected.
Possible Causes:
Solutions:
Symptoms: Receiving 429 "Too Many Requests" responses.
Possible Causes:
Solutions:
"SSL Required" Error:
"Role Does Not Exist" Error:
"Authentication Failed" Error:
"NOAUTH Authentication Required" Error:
If you can't resolve an issue:
- Error message and status code
- Request body (without sensitive data)
- Timestamp of the issue
- Your access level
- Swagger UI: http://{host}:8000/swagger-ui/
| Error | Status | Common Cause |
|---|---|---|
| Unauthorized | 401 | Invalid/expired token |
| Forbidden | 403 | Insufficient permissions |
| Not Found | 404 | Resource doesn't exist |
| Bad Request | 400 | Invalid request format |
| Conflict | 409 | Resource already exists |
| Too Many Requests | 429 | Rate limit exceeded |
| Internal Server Error | 500 | Server-side issue |