When using collection.watch, the max_await_time_ms option has no impact on the maxAwaitTimeMS used by server. Actual wait time is always 1000ms default.
cursor = client[:batches].watch([],{max_await_time_ms: 5000}) enum = cursor.to_enum batch = enum.try_next #blocks for max 1000ms
A quick glance looks like mapping is always to maxTimeMS instead of maxAwaitTimeMS as per the online docs[link title|https://docs.mongodb.com/manual/reference/method/db.collection.watch/].
:max_await_time_ms => 'maxTimeMS'