Common Problems
Request hangs and never responds
Likely cause: The request timeout is set to 0 (wait forever) and the server is unresponsive, or the URL is unreachable.
Fix:
- Set a timeout in Settings → General → Request Timeout (e.g.
30000for 30 seconds). - Open the Console — it will show a DNS failure, connection refused, or timeout error that explains what went wrong.
- Verify the URL is correct and the server is running.
{{variableName}} appears literally in the URL or body
Likely cause: No environment is active, or the variable name is misspelled (names are case-sensitive).
Fix:
- Open Environments (
Cmd/Ctrl E) and check that the variable exists with the exact same name. - Check that the environment is set as Active.
- Check the environment badge in the top-right corner — if it says "No Environment", select one.
- Remember:
{{baseUrl}}and{{BaseURL}}are different variables.
Test scripts do not seem to run
Likely cause: The Scripts tab is empty, there is a JavaScript syntax error, or the script is throwing before any assertions run.
Fix:
- Open the request → Scripts tab and confirm code is in the Test Script editor (bottom half).
- Open the Console — script errors are logged there with line numbers.
- Check the Test Results tab in the response panel after sending — it shows which tests ran and which failed.
Certificate error when sending a request
Likely cause: The API uses a self-signed certificate, a private CA, or requires a client certificate for mutual TLS.
Fix:
- For self-signed or private CA certificates: go to Settings → Certificates and add the CA certificate.
- For APIs that require client certificates (mTLS): go to Settings → Certificates, add the certificate, and associate it with the hostname.
- To disable SSL verification entirely for testing (not recommended for production): check if there is an SSL toggle in Settings → General.
Response body is empty
Likely cause: The server returned 204 No Content (normal for DELETE and some PUT requests) or you used the HEAD method (which never has a body by design).
Fix: This is expected behaviour. A 204 response means the operation succeeded but there is nothing to return. If you expected a body and got a 204, the API may be behaving differently than documented.
A vault secret is not substituted in the request
Likely cause: The Vault is locked, the secret is disabled, or the request domain does not match the secret's allowed domains.
Fix:
- Click Vault in the status bar and check whether it shows as locked. Unlock it first.
- In the Vault panel, check that the secret is enabled (the toggle is on).
- Check the secret's Allowed Domains field. If it is set, the request URL's hostname must match. An empty allowed domains field allows any domain.
Git Sync is not working
Likely cause: The local repository path is wrong, the remote URL is incorrect, or Git is not installed or detectable.
Fix:
- Open Settings → Git Sync.
- Verify the Local Repository Path exists on disk and contains a
.gitfolder. - Click Detect next to the Git Binary Path to confirm Curlex can find Git.
- Try a manual sync and watch the Console for error messages.
OAuth 2.0 token popup closes immediately or does not appear
Likely cause: The Callback URL in the OAuth 2.0 config does not match what is registered with the provider, or the provider rejected the request.
Fix:
- Check that the Callback URL in your OAuth 2.0 flow config exactly matches the redirect URI you registered with the API provider (it is case-sensitive and includes the scheme, e.g.
https://localhost/callback). - Open the Console to see any error responses from the auth server.
- Try the flow again — the popup has a 5-minute timeout before it closes automatically.
Import fails or produces an empty collection
Likely cause: The file format was not detected correctly, the spec file has errors, or a Postman export was in v1 format (not supported).
Fix:
- Ensure you are importing a Postman Collection v2.1 export (not v1).
- For OpenAPI files: validate the spec at editor.swagger.io to check for syntax errors before importing.
- Try clicking one of the format chips (Postman, OpenAPI, cURL) in the import dialog to override auto-detection.
Variables set in a test script are not available in the next request
Likely cause: You used fc.environment.set() in a test script and sent both requests manually (not via the Collection Runner). Variables set in scripts persist within a Collection Runner run, but manual sends each execute independently.
Fix:
- Use the Collection Runner to run multiple requests in sequence — variables set in one request's test script are immediately available to all subsequent requests in the same run.
- Alternatively, set the variable manually in your environment before sending the second request.