Troubleshooting
Common Issues & Solutions
Quick fixes for the most common problems you might encounter when working with OpenAPI specs in Tigrister.
Import Issues
Common"Invalid YAML" or "Invalid JSON" Error
Cause: Syntax error in the spec file.
Solutions:
- Check for missing colons, commas, or quotes
- Verify indentation (YAML is whitespace-sensitive)
- Use a YAML/JSON validator to find the exact line
- For YAML: tabs are NOT allowed, use spaces only
"Not a valid OpenAPI specification"
Cause: File is valid YAML/JSON but not an OpenAPI spec.
Solutions:
- Ensure the file has
openapi: "3.x.x"orswagger: "2.0" - Check that
infoandpathsare present - Verify you're importing the right file (not a config or schema file)
URL Import Failed
Possible causes:
- CORS blocked - Server doesn't allow cross-origin requests
- Auth required - URL needs authentication
- Wrong URL - 404 or redirect to HTML page
- Network error - Firewall or DNS issue
Solutions:
- Download the file manually and use "Upload File" instead
- Check if the URL returns JSON/YAML (not an HTML page)
- Try accessing the URL directly in your browser first
Large Spec Import is Slow
Cause: Very large specs (1000+ endpoints) require more processing.
Tips:
- Wait for import to complete - don't close the window
- Consider splitting into multiple specs if possible
- Use external $ref files to modularize large specs
Validation Errors
Editor"Missing required field: responses"
Cause: Every operation MUST have a responses object.
External $ref Resolution Stops
Cause: Tigrister limits external $ref resolution to 10 levels deep.
Solutions:
- Flatten deeply nested external references
- Use internal refs (#/components/...) where possible
- Consolidate shared schemas into fewer files
Circular $ref Returns Empty Schema
Cause: Self-referential schemas (A → B → A) are detected and stopped.
Behavior: Circular refs return {} to prevent infinite loops.
Impact:
- Example generation shows "..." for circular parts
- Schema validation still works correctly
- This is expected behavior, not an error
"$ref target not found"
Cause: Reference points to a non-existent schema.
Solutions:
- Check the schema name spelling (case-sensitive!)
- Ensure the referenced schema exists in components/schemas
- Verify the path format:
#/components/schemas/Name
"Duplicate operationId"
Cause: Each operation must have a unique operationId.
Solution: Rename one of the duplicate IDs.
"Invalid type value"
Cause: Schema type must be one of the allowed values.
Valid types:
Authentication Problems
Runtime401 Unauthorized Response
Possible causes:
- Token expired - re-authorize with fresh credentials
- Wrong credentials - double-check API key or password
- Missing scopes - endpoint requires scopes you didn't request
- Wrong auth scheme - using API key when OAuth2 is expected
Steps to fix:
- Click "Authorize" button
- Log out of current session
- Re-enter credentials
- Verify the lock icon turns solid (authorized)
403 Forbidden Response
Cause: Auth is valid but you lack permission for this resource.
Solutions:
- Check if the endpoint requires admin/elevated permissions
- Verify your user has access to the resource ID
- For OAuth2: ensure you requested the required scopes
OAuth2 Redirect Fails
Cause: OAuth provider can't redirect back to Tigrister.
Solutions:
- Check that the OAuth app allows localhost/desktop redirects
- Verify authorizationUrl is correct in the spec
- Try with a different browser if popups are blocked
Auth Headers Not Being Sent
Causes & solutions:
- Lock icon is open - Click Authorize and enter credentials
- Wrong scheme authorized - Check which scheme the endpoint requires
- security: [] on endpoint - Endpoint is public, no auth sent intentionally
Token Auto-Refresh
Good news: OAuth2 tokens are automatically refreshed before they expire!
How it works:
- Tigrister checks token expiration before each request
- If token is about to expire, refresh happens automatically
- You don't need to manually re-authorize during long sessions
If refresh fails:
- Click Authorize and log out
- Re-authorize with fresh credentials
- Check if refresh_token scope was granted
Sync Conflicts
DesignerChanges in Code Editor Not Appearing in Area Mode
Cause: You need to save before changes sync.
Solution:
- Click the "Save" button or press Cmd/Ctrl + S
- If Save is disabled, check for validation errors
- Fix any red error markers before saving
Save Button is Disabled
Cause: There are validation errors in the spec.
Solution:
- Check the error count in the toolbar
- Look for red underlines in the Code Editor
- Hover over errors to see details
- Fix all errors - then Save becomes enabled
Lost Unsaved Changes
Prevention:
- Look for the amber dot next to project name (indicates unsaved changes)
- Save frequently while editing
- Don't close the window if you see "Unsaved changes" warning
Recovery:
- Check browser history if you copied spec content recently
- If you clicked "Restore", the last saved version is loaded
- Unfortunately, unsaved changes cannot be recovered after closing
Visual Designer Shows Old Data
Cause: Editor and Visual Designer can be out of sync during editing.
Solutions:
- Toggle to Editor mode and back to refresh
- Save the spec to sync all views
- Close and re-open the Designer if issues persist
Request Issues
Try It OutCORS Error in Preview
Cause: Browser blocks cross-origin requests from embedded preview.
Solutions:
- Use Area Mode instead - it bypasses browser CORS restrictions
- Configure your API server to allow CORS from Tigrister
- For local development, use a CORS proxy
Connection Refused
Causes:
- Server is not running
- Wrong port number in server URL
- Firewall blocking the connection
- Server only listening on localhost but you're using a different hostname
Solution: Verify the server URL matches a running service.
SSL/Certificate Errors
Causes:
- Self-signed certificate on development server
- Expired certificate
- Certificate hostname mismatch
Solutions:
- For development: use http:// instead of https://
- Trust the certificate in your system settings
- For production: fix the certificate issue on the server
"415 Unsupported Media Type"
Cause: Server doesn't accept the Content-Type you're sending.
Solutions:
- Check what Content-Type the endpoint accepts (look at requestBody)
- Ensure you're using the right body type (JSON vs form-data)
- Verify the Content-Type header matches the body format
Array Parameters Not Working
Cause: Server expects different array format than what's being sent.
Solutions:
- Check the parameter's
stylesetting (form, spaceDelimited, etc.) - Verify the
explodesetting matches server expectations - Test different formats:
?ids=1,2,3vs?ids=1&ids=2&ids=3
Environment Variable Not Replaced
Symptom: {{VAR}} appears literally in the request instead of the value.
Causes & solutions:
- Variable not defined - Add it to your active environment
- Wrong environment selected - Check the environment dropdown
- Typo in variable name - Names are case-sensitive
- Single braces - Use
{{var}}not{var}
Quick Reference: Error Codes
| Code | Meaning | First Thing to Check |
|---|---|---|
| 400 | Bad Request | Request body format, required parameters |
| 401 | Unauthorized | Are you authorized? Check lock icon |
| 403 | Forbidden | Permissions, scopes, resource access |
| 404 | Not Found | URL path, resource ID exists? |
| 405 | Method Not Allowed | Using GET when it should be POST? |
| 415 | Unsupported Media Type | Content-Type header, body format |
| 422 | Unprocessable Entity | Request body validation failed |
| 429 | Too Many Requests | Rate limited - wait and retry |
| 500 | Internal Server Error | Server-side bug, check server logs |
Still Stuck?
If you can't find a solution here:
Check Your Spec
Validate your spec with an external tool like Swagger Editor to identify issues.
Compare with Examples
Import a known-good spec like Petstore and compare your structure.