Invalid size for parameter embedding, Expected: N, Actual: M

TL;DR — der Vektor, den du geschrieben hast, hat eine andere Dimensionsanzahl, als der Vektorindex erwartet. Der Index hat seine Dimensions bei der Erstellung gepinnt, und sie lassen sich nicht ändern; regeneriere das Embedding mit der Dimensionsanzahl des Index oder lege einen neuen Index an.

Was es bedeutet

ValidationException: One or more parameter values were invalid. Invalid size for parameter embedding, Expected: 1024, Actual: 512 IndexName: TicketEmbeddings

Das ist die wörtliche Service-Response, die wir in us-east-1 eingefangen haben, indem wir ein 512-Dimensionen-Embedding in eine Tabelle geschrieben haben, deren Vektorindex mit Dimensions: 1024 angelegt war. Der Write wird komplett zurückgewiesen; nichts landet in der Tabelle oder im Index.

Die Meldung nennt drei Dinge: das Vektor-Attribut (embedding), die Dimensionsanzahl, die der Index erwartet, und die, die du gesendet hast. IndexName am Ende sagt dir, welcher der Vektorindizes der Tabelle (bis zu 5) sie ausgelöst hat.

Warum es passiert

  • Du hast das Embedding-Modell gewechselt. Ein Modell mit 512 Dimensionen Output hat eines mit 1,024 ersetzt. Die Dimensions des Index sind bei der Erstellung fixiert, also failt jetzt jeder neue Write.
  • Ein Truncation- oder Padding-Schritt ist verschwunden. Pipelines, die Matryoshka-artige Embeddings auf eine Zielgröße zuschneiden, failen so, wenn der Slice übersprungen wird.
  • Zwei Indizes, ein Attributname. Ein Write, der die Dimensionsanzahl des einen Index erfüllt, kann trotzdem an einem anderen Index scheitern, der über dasselbe Attribut auf einer anderen Tabelle definiert ist.

So behebst du es

Regeneriere das Embedding mit der Dimensionsanzahl des Index, oder lösche den Index und lege einen neuen mit der Anzahl des Modells an. Es gibt keine In-Place-Änderung: Dimensions und DistanceFunction sind immutable, ein Modell-Umzug heißt also neuer Index plus Backfill.

Müssen beide Modelle während einer Migration koexistieren, schreibe sie in zwei verschiedene Attribute und gib jedem seinen eigenen Vektorindex — eine Tabelle nimmt bis zu 5.

Verwandte Themen

Das vollständige Billing- und Limits-Bild steht im DynamoDB-Vektorsuche-Guide. Das generische Präfix dieser Meldung hat eine eigene Seite: "One or more parameter values were invalid".

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.