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 i HTTPS_PROXY są automatycznie odczytywane przez wiele SDK. Nieaktualna wartość w środowisku po cichu wygrywa z argumentem przekazanym w kodzie.
Firmowe proxy i urządzenia inspekcji TLS inaczej wpływają na stosy HTTP bibliotek, a inaczej na curl. Błąd certyfikatu z SDK przy czystym curl to charakterystyczny podpis.
Klucze mogą być ograniczone według IP źródłowego. Twój laptop jest dozwolony, serwer nie, a błąd to odmowa autoryzacji, która w niczym nie przypomina problemu z IP.
Niech aplikacja wypisze, czego naprawdę zamierza użyć:
# 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'
Uruchom curl z tej samej maszyny i tej samej powłoki co aplikacja. Odtworzenie tego z laptopa testuje inną trasę sieciową i niczego nie dowodzi.
Ostatnio sprawdzono 2026-10-01. Napisane na podstawie problemów zdiagnozowanych na działającej bramce zgodnej z OpenAI, a nie zebrane z innych stron.