Kafka MongoDB Connector Error: "Cannot perform a non-multi update on a time-series collection"


I’m working with the Kafka MongoDB connector to stream data from Kafka into a MongoDB time-series collection. My setup involves processing data from an API and sinking it into MongoDB using the Kafka connector. When attempting to sink new messages, I’m encountering an error I can’t resolve:

Cannot perform a non-multi update on a time-series collection


  • My messages are in the following JSON format:
	"metadata": {...},
	"timestamp": 1689949371,
	"readings": {...}
  • I’ve ensured I’m only inserting new records and not trying to update existing ones.
  • The connector configurations are set up to handle this appropriately (previously shared in detail).

What I’ve tried:

  1. Confirmed I’m only trying to insert new records.
  2. Reviewed MongoDB community responses - most refer to issues updating time-series collections, but I’m inserting new records.
  3. Checked connector configurations for potential implicit update behaviors.


Despite the above, when I try to sink messages, I’m getting the aforementioned error. The connector seems to think it’s an update operation, even though I’m only sinking new messages.


Why might the Kafka MongoDB connector perceive these insertions as updates? Has anyone else experienced this, especially with time-series collections in MongoDB, and how did you resolve it?

Any insights or pointers would be greatly appreciated.

I am not 100% sure, but as of now it seems to solve my problem.
In the kafka connect config I set the writemodel.strategy the following way:
“writemodel.strategy”: “com.mongodb.kafka.connect.sink.writemodel.strategy.InsertOneDefaultStrategy”