curl returns 200 and the SDK returns 401, 403 or a connection errorIt works on your laptop and fails on the serverIt worked before you added the key to a secrets managerThe app's error mentions a host you did not configureOPENAI_BASE_URL, OPENAI_API_KEY et HTTPS_PROXY sont lues automatiquement par de nombreux SDK. Une valeur périmée dans l'environnement l'emporte en silence sur l'argument passé dans le code.
Les proxies d'entreprise et les équipements d'inspection TLS n'affectent pas de la même façon les piles HTTP des bibliothèques et curl. Une erreur de certificat dans le SDK avec un curl qui passe, c'est la signature.
Les clés peuvent être restreintes par IP source. Votre portable est autorisé, le serveur non, et l'erreur est un refus d'autorisation qui ne ressemble en rien à un problème d'IP.
Faites afficher par l'application ce qu'elle s'apprête réellement à utiliser :
# Python
import os
print(os.getenv('OPENAI_BASE_URL'), os.getenv('HTTPS_PROXY'))
print(client.base_url)
# then reproduce curl from inside the same host
curl -s -o /dev/null -w '%{http_code}\n' \
'YOUR_BASE_URL/models' -H 'Authorization: Bearer YOUR_KEY'
Lancez le curl depuis la même machine et le même shell que l'application. Le reproduire depuis votre portable teste un autre chemin réseau et ne prouve rien.
Dernière vérification le 2026-10-01. Rédigé à partir de problèmes diagnostiqués sur une passerelle compatible OpenAI en production, pas compilé à partir d'autres sites.