The config profile could not be found

TL;DR — Der Profilname, den du verwendest, existiert nicht in den AWS-Konfigurationsdateien, die dein Prozess liest. Drei übliche Verdächtige: eine veraltete Umgebungsvariable AWS_PROFILE, ein Tippfehler in --profile/profile_name oder ein Profil unter der falschen Abschnittsüberschrift — ~/.aws/config braucht [profile myprofile], während ~/.aws/credentials schlicht [myprofile] verwendet. Führe aws configure list-profiles aus und vergleiche.

Was es bedeutet

botocore.exceptions.ProfileNotFound: The config profile (myprofile) could not be found

Bevor ein DynamoDB-Aufruf signiert werden kann, löst das SDK ein Credentials-Profil auf. Wenn ein Profil explizit angefordert wurde — über AWS_PROFILE, --profile oder boto3.Session(profile_name=...) — und kein Abschnitt mit diesem Namen in den gelesenen Konfigurations-/Credentials-Dateien existiert, stoppt die Auflösung mit diesem Fehler. Nichts hat AWS erreicht; es ist rein ein lokal fehlschlagender Konfigurations-Lookup.

Warum es passiert

  • AWS_PROFILE zeigt auf ein Profil, das nicht existiert — vor langer Zeit in einer Shell-rc-Datei, einem Container-Image oder in der CI-Konfiguration gesetzt, dann wurde das Profil umbenannt oder entfernt.
  • Ein Tippfehler oder eine Groß-/Kleinschreibungs-Abweichung — Profilnamen werden exakt abgeglichen.
  • Falsche Abschnitts-Header-Syntax — in ~/.aws/config muss ein benanntes Profil als [profile myprofile] deklariert werden; schreibst du dort [myprofile], kann die CLI/das SDK es nicht finden (die schlichte Form gehört in ~/.aws/credentials).
  • Die Dateien liegen nicht dort, wo der Prozess suchtAWS_CONFIG_FILE/AWS_SHARED_CREDENTIALS_FILE überschreiben den Pfad, ein anderes Home-Verzeichnis unter sudo/einem Service-User oder ein Container ohne den ~/.aws-Mount.

So behebst du es

  1. Liste auf, was für deine Umgebung tatsächlich sichtbar ist:

    aws configure list-profiles
    env | grep -i '^AWS_'
  2. Korrigiere oder entferne den Zeigerunset AWS_PROFILE (oder setze es auf ein gelistetes Profil), korrigiere die Schreibweise von --profile/profile_name.

  3. Prüfe die Abschnitts-Header:

    # ~/.aws/config
    [profile myprofile]
    region = eu-west-1
    
    # ~/.aws/credentials
    [myprofile]
    aws_access_key_id = ...
    aws_secret_access_key = ...
  4. Lege das Profil an, falls es nie existierteaws configure --profile myprofile (oder aws configure sso für Identity-Center-Profile).

  5. In Containern/CI bevorzuge Umgebungs-Credentials oder eine Rolle statt Profildateien — oder mounte/verweise AWS_CONFIG_FILE auf eine Datei, die das Profil wirklich definiert.

Sobald das Profil aufgelöst wird, prüfe, ob es deine Tabellen tatsächlich erreichen kann — DynoTable nutzt deine AWS-Profile zum Verbinden, und sein Profil-Umschalter macht sichtbar, „welches Profil welche Tabellen sieht".

In DynoTable ansehen

DynoTable liest dieselben ~/.aws/credentials and ~/.aws/config Dateien auf as the CLI — add proDateien auf under Einstellungen → Profile, wähle den Profilnamen aus dem Dropdown, and run Verbindung testen um zu bestätigen, dass es auflöst, bevor dein SDK es tut. Profilwechsel (⌘P) makes a stale AWS_PROFILE obvious when tables disappear.

Für Local, create a profile with endpoint http://localhost:8000 and dummy credentials. Siehe Mit AWS verbinden und Installation. Öffne Tabellen mit ⌘K once connected, then run a smoke-test query in the Query Builder.

Quellen

So reproduzierst du es

Zeige boto3 auf a profile that is not in your config, with the AWS environment cleared so nothing else satisfies the lookup:

import boto3
boto3.Session(profile_name='no-such-profile-xyz').client('dynamodb').list_tables()

Echte Ausgabe:

ProfileNotFound: The config profile (no-such-profile-xyz) could not be found

Das wirft botocore auf dem Client, before any request reaches AWS — which is why there is no HTTP status and why retrying cannot help. The name in parentheses is the profile it looked for, so it tells you whether the typo is in your code or in your config file.

Verwandte Fehler

Referenzen

Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.

Am 2026-07-26 gegen boto3 1.43.56 / botocore 1.43.56 reproduziert — die Ausgabe oben ist wortgetreu.

Mit DynamoDB ohne die Console arbeiten

Ein schneller DynamoDB-Desktop-Client, der das echte SQL ausführt, das DynamoDB nicht kann — JOINs, GROUP BY, Aggregationen — mit visueller Bearbeitung und einem KI-Agenten auf deinen eigenen Bedrock-Schlüsseln.

30 Tage kostenlos testen, keine Kreditkarte — danach der Kostenlos-Tarif ohne Zeitlimit.