Command line: Make sure the process recognizes proxy variables
Some command-line tools read HTTPS_PROXY, HTTP_PROXY, or ALL_PROXY, but support depends on the runtime, SDK, and version. The variable being set doesn’t mean the program uses it. Follow the tool’s official documentation, and check whether NO_PROXY sends the target domain outside the intended route. Get the proxy address and port from your own client settings; don’t copy someone else’s values.
After changing environment variables, check whether the target process has restarted. Containers, child processes, and background services may retain an older environment. A successful terminal test doesn’t prove that a background task is using the new settings. For certificate errors, check the system clock, certificate chain, and managed network settings. Don’t disable certificate verification just to make the error go away temporarily.
IDE extensions: Distinguish local from remote extensions
Chat, completions, and sign-in in an editor may be handled by different components. In a remote workspace, an extension may run on a remote host or inside a container, where your local system proxy may not apply. Check where the extension runs, then review the editor’s proxy settings, the extension’s own options, and the remote environment. Reconnect the relevant sessions after changing settings, and test with a request that contains no private code.
CI: Build machines don’t use your personal computer’s route
CI jobs run on the network of their runner. Even if an API request works on your computer, check the runner’s exit region, DNS resolution, outbound rules, and proxy settings separately. Store credentials in CI’s secret management and inject them through a controlled environment; never print variable values to logs. Use bounded retries for network errors, and distinguish transient failures from permission errors that require manual attention.
For streaming requests, check the timeout settings in the application, reverse proxy, and execution platform. If any layer closes the connection early, the client may only show an interrupted response. If the task is already running on the server, blindly retrying may create duplicate tasks or extra charges. Decide whether to retry based on the API’s task status and idempotency behavior.