Weaviate "update vector: unmarshal error response body: Not Found" on Object Creation with text2vec-huggingface

Description

Hello everyone,

I’m encountering a persistent error when trying to create objects in my Weaviate instance, and I’m hoping someone in the community might have some insights.

The Error:

Every time I attempt a POST request to /v1/objects for my MunicipioPdf class, the Weaviate logs show the following error:

{"action":"requests_total","api":"rest","class_name":"MunicipioPDF","error":"update vector: unmarshal error response body: Not Found","level":"error","msg":"unexpected error","query_type":"objects","time":"..."}

This error occurs immediately after the POST request is received by Weaviate.

[:warning: Suspicious Content] Our Architecture and Language:

Backend Language: Java (using Spring Boot and the spring-webflux WebClient for interacting with Weaviate).
Weaviate Setup: Running Weaviate in a Docker container (version 1.26.0, as per the logs). The text2vec-huggingface module also appears to be running within the same Weaviate container (based on the logs).
Vectorizer Model: We are using the sentence-transformers/all-mpnet-base-v2 model specified in our Weaviate schema for the MunicipioPdf class.
Our Weaviate Schema for the MunicipioPdf Class:

JSON

{
“classes”: [
{
“class”: “MunicipioPdf”,
“description”: “PDF chunks from Municipio documents”,
“vectorizer”: “text2vec-huggingface”,
“vectorizeClassName”: false,
“moduleConfig”: {
“text2vec-huggingface”: {
“model”: “sentence-transformers/all-mpnet-base-v2”
}
},
“properties”: [
{
“name”: “filename”,
“dataType”: [“text”],
“description”: “Name of the PDF file”,
“tokenization”: “word”,
“indexInverted”: true,
“indexFilterable”: true,
“indexSearchable”: true,
“vectorizePropertyName”: false,
“skipVectorization”: true
},
{
“name”: “content”,
“dataType”: [“text”],
“description”: “Text content chunk extracted from the PDF”,
“tokenization”: “word”,
“indexInverted”: true,
“indexFilterable”: false,
“indexSearchable”: true,
“vectorizePropertyName”: false,
“skipVectorization”: false
},
{
“name”: “chunkIndex”,
“dataType”: [“int”],
“description”: “Index of the chunk within the PDF”,
“indexInverted”: true,
“indexFilterable”: true,
“indexSearchable”: false,
“vectorizePropertyName”: false,
“skipVectorization”: true
}
]
}
]
}

DOCKER

sudo docker run -d
-p 8181:8080
-e AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true
-e PERSISTENCE_DATA_PATH=“/var/lib/weaviate”
-e ENABLE_MODULES=text2vec-huggingface
-e DEFAULT_VECTORIZER_MODULE=text2vec-huggingface
-e HUGGINGFACE_APIKEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-e HF_HOME=“/var/lib/weaviate/hf_cache”
-e TEXT2VEC_HUGGINGFACE_MODEL=“sentence-transformers/all-mpnet-base-v2”
-e TEXT2VEC_HUGGINGFACE_ENDPOINT=“https://api-inference.huggingface.co/pipeline/feature-extraction/sentence-transformers/all-mpnet-base-v2
-e QUERY_DEFAULTS_LIMIT=25
-e LOG_LEVEL=debug
–name weaviate-huggingface-4
semitechnologies/weaviate:1.26.0

Things We’ve Tried:

We’ve confirmed that our Java application can successfully connect to Weaviate for reading objects.
Even a simple curl POST request to create a basic MunicipioPdf object with just filename and content fails with the same error in the Weaviate logs.
We’ve reviewed the Weaviate container logs (weaviate-huggingface-4), and during startup, the text2vec-huggingface module appears to initialize correctly without any immediate errors related to permissions, API keys, or network issues.

Our Question:

Has anyone encountered this “update vector: unmarshal error response body: Not Found” error specifically during object creation with the text2vec-huggingface module? What could be causing Weaviate to fail during the vector update with a “Not Found” error, even for basic object creation? Any suggestions on where to look next for debugging this issue would be greatly appreciated!

Thank you in advance for your help!

Hi @manuharari !!

I believe this issue is related to this PR:

Note that this PR was backported only to 1.28.15:

I noticed you are using a really old version, 1.26.0

So I suggest you to upgrade path:

1.26.0 → 1.26.latest → restart → 1.27.latest → restart → 1.28.latest

in between each restart, wait all the data get loaded and the cluster stabilized.

Or, of your data is not too big, you can copy your data over to a new cluster running the latest version or the target version.

Let me know if this helps!

Thanks!

I did this, now what? i dont get what changed in the PR, can you help me?

Hi! What version specifically have you upgraded to?

Also, we suggest running using a docker compose, such as:

It is now (apparently) loading the documents! it is sending an error though, a different one, but huge progress. You are sensational!!

Also want to know why does the update version needs to follow a path?

1 Like

That’s great news!!

That’s because there may - or may not - have migrations between versions.

Upgrading to the latest on each X.X will ensure you have everything needed to perform the next step.

A rule of thumb is to always be on X.x.latest and at least 3 versions behind the latest release.

For example, our current latest is 1.30, this last patch was back ported to 1.28.latest.

Now if you are on 1.28 and we release 1.31, all future patches will be back ported to 1.30 and 1.29

Let me know if this helps!

Happy coding!