Invalid size for parameter embedding, Expected: N, Actual: M
TL;DR — le vecteur que tu as écrit a un nombre de dimensions différent de celui que l'index vectoriel attend. L'index a figé ses Dimensions à la création et elles ne peuvent pas changer ; soit tu régénères l'embedding au nombre de dimensions de l'index, soit tu crées un nouvel index.
Ce que ça signifie
ValidationException: One or more parameter values were invalid. Invalid size for parameter embedding, Expected: 1024, Actual: 512 IndexName: TicketEmbeddingsC'est la réponse verbatim du service que nous avons capturée dans us-east-1 en écrivant un embedding de 512 dimensions dans une table dont l'index vectoriel avait été créé avec Dimensions: 1024. L'écriture est rejetée d'emblée ; rien n'atterrit dans la table ni dans l'index.
Le message nomme trois choses : l'attribut vectoriel (embedding), le nombre de dimensions que l'index attend, et celui que tu as envoyé. IndexName à la fin te dit lequel des index vectoriels de la table (jusqu'à 5) l'a levée.
Pourquoi ça arrive
- Tu as changé de modèle d'embedding. Un modèle qui sort 512 dimensions a remplacé un modèle qui en sortait 1,024. Les
Dimensionsde l'index sont fixées à la création, donc chaque nouvelle écriture échoue désormais. - Une étape de troncature ou de remplissage a disparu. Les pipelines qui découpent des embeddings de type Matryoshka vers une taille cible échouent ainsi quand la découpe est sautée.
- Deux index, un même nom d'attribut. Une écriture qui satisfait le nombre de dimensions d'un index peut quand même échouer sur un autre index défini sur le même attribut dans une autre table.
Comment le corriger
Régénère l'embedding au nombre de dimensions de l'index, ou supprime l'index et crées-en un nouveau au nombre de dimensions du modèle. Il n'y a pas de changement en place : Dimensions et DistanceFunction sont immuables, donc une migration de modèle veut dire un nouvel index et un backfill.
Si les deux modèles doivent coexister pendant une migration, écris-les dans deux attributs différents et donne à chacun son propre index vectoriel — une table en accepte jusqu'à 5.
Sur le même sujet
Le tableau complet de la facturation et des limites est dans le guide de la recherche vectorielle DynamoDB. Le préfixe générique de ce message a sa propre page : « One or more parameter values were invalid ».