weaviate icon indicating copy to clipboard operation
weaviate copied to clipboard

[Windows] Bulk Upsert via /v1/batch/objects Unexpectedly Clears Existing Data

Open deepaks-1mg opened this issue 8 months ago • 5 comments

How to reproduce this bug?

Platform: Windows

  1. Create a collection and populate it with a few hundred objects
  2. Update a subset of objects via/v1/batch/objects API using UUIDs from existing objects. Here is a sample curl curl --location 'http://127.0.0.1:8079/v1/batch/objects' \ --header 'Content-Type: application/json' \ --data '{ "objects": [ { "class": "Chunks", "properties": { "chunk_hash": "90e8bad95ea82523", "text": "class InitializationService:", "created_at": "2025-05-09T19:03:29.608397Z", "updated_at": "2025-05-09T19:03:29.608397Z" }, "id": "0017d751-29ae-5a43-b02a-ec1bc55626e5" }, { "class": "Chunks", "properties": { "chunk_hash": "90e8bad95ea82523", "text": "class InitializationService:", "created_at": "2025-05-09T19:03:29.608397Z", "updated_at": "2025-05-09T19:03:29.608397Z" }, "id": "01c17b78-5b34-509a-a746-539bcfd66804" } ] }'

What is the expected behavior?

It should update the given objects without affecting other existing objects in the collection

What is the actual behavior?

The /v1/batch/objects endpoint successfully updates the specified objects, but unexpectedly removes all other existing objects in the collection. This issue occurs only on Windows, it works as expected on macOS

Supporting information

chunks = sync_client.collections.get("Chunks")

Objects count before update: Image

Updated following 2 objects out of 235 using the curl shared above: Image

Objects count after update: Image

Server Version

v1.27.22

Weaviate Setup

Single Node

Nodes count

No response

Code of Conduct

deepaks-1mg avatar May 09 '25 19:05 deepaks-1mg

@antas-marcin bumping this up. Can you please guide us if this needs to be looked upon on weaviate's end? Or are there some configurations we can tweak?

satyamtg avatar May 12 '25 05:05 satyamtg

@deepaks-1mg Could you provide some more details about how you're running Weaviate? Specifically if you're using the "embedded" version or if you're trying to run natively on Windows or via Docker or WSL 2.

In general, at this time running Weaviate on Windows natively or embedded Weaviate is not fully supported and has other known issues around things like file handling. Other users have had success running Weaviate inside WSL 2, though I haven't personally investigated this setup in detail. We officially recommend using Linux or macOS to run the Weaviate server or embedded Weaviate. We expect that running Weaviate on Windows via Docker should work great.

This response has some more details about the state of Windows support: https://github.com/weaviate/weaviate/issues/3315#issuecomment-2283386364

nathanwilk7 avatar May 13 '25 02:05 nathanwilk7

@nathanwilk7 Thank you for your response. I've been running Weaviate natively on Windows, as I noticed your official releases include Windows binaries. However, I've recently started exploring the Docker-based setup. That said, I'm uncertain about how well it will function given that the underlying file system remains Windows-based. Do you have any insights on this?

deepaks-1mg avatar May 13 '25 05:05 deepaks-1mg

@deepaks-1mg To avoid confusion, we've removed the Windows binaries from future releases.

I would expect the Docker-based setup to function normally from the container's point of view given that it's relying on docker's virtualization of the underlying host platform.

nathanwilk7 avatar May 14 '25 23:05 nathanwilk7

@deepaks-1mg please report back here when able with confirmation that running in docker is working for you or if you encounter any issues

nathanwilk7 avatar May 16 '25 07:05 nathanwilk7