Excuse me if double posting, the previous post got (wrongly) spam-filtered, perhaps because I pasted a link in it.
On with the issue:
On 2023-06-08 one of my orders got filled even though the good-till-time already passed.
It concerns order id: b7d2fc22-eecb-4cde-8101-ab7fc07bfaa1
In the screenshot in you can see that the “Good Til Time” is “8/06/23 04:59:33” but the “Time of Last Fill” is LATER than that: “8/06/23 05:21:49”
This is very concerning as clearly the Good Til Time was not honored.
I submitted it by API, and I have some logs of the websocket user channel for further proof:
{"channel":"user","client_id":"","timestamp":"2023-08-06T02:59:24.574548985Z","sequence_num":18898,"events":[{"type":"update","orders":[{"order_id":"b7d2fc22-eecb-4cde-8101-ab7fc07bfaa1","client_order_id":"<censored>","cumulative_quantity":"0","leaves_quantity":"11.92","avg_price":"0","total_fees":"0","status":"PENDING","product_id":"USDT-EUR","creation_time":"2023-08-06T02:59:24.323202Z","order_side":"BUY","order_type":"Limit","cancel_reason":"","reject_Reason":""}]}]}
{"channel":"user","client_id":"","timestamp":"2023-08-06T02:59:24.574594246Z","sequence_num":18899,"events":[{"type":"update","orders":[{"order_id":"b7d2fc22-eecb-4cde-8101-ab7fc07bfaa1","client_order_id":"<censored>","cumulative_quantity":"0","leaves_quantity":"11.92","avg_price":"0","total_fees":"0","status":"OPEN","product_id":"USDT-EUR","creation_time":"2023-08-06T02:59:24.323202Z","order_side":"BUY","order_type":"Limit","cancel_reason":"","reject_Reason":""}]}]}
Because my bot noticed that it did not expire, it even attempted to cancel it (see "cancel_reason":"User requested cancel"
), but it does not get cancelled by Coinbase:
{"channel":"user","client_id":"","timestamp":"2023-08-06T02:59:47.07517172Z","sequence_num":18906,"events":[{"type":"update","orders":[{"order_id":"b7d2fc22-eecb-4cde-8101-ab7fc07bfaa1","client_order_id":"<censored>","cumulative_quantity":"0","leaves_quantity":"11.92","avg_price":"0","total_fees":"0","status":"OPEN","product_id":"USDT-EUR","creation_time":"2023-08-06T02:59:24.323202Z","order_side":"BUY","order_type":"Limit","cancel_reason":"User requested cancel","reject_Reason":""}]}]}
Eventually it just gets filled:
{"channel":"user","client_id":"","timestamp":"2023-08-06T03:21:49.251072367Z","sequence_num":2,"events":[{"type":"update","orders":[{"order_id":"b7d2fc22-eecb-4cde-8101-ab7fc07bfaa1","client_order_id":"<censored>","cumulative_quantity":"11.92","leaves_quantity":"0","avg_price":"0.9077","total_fees":"0","status":"FILLED","product_id":"USDT-EUR","creation_time":"2023-08-06T02:59:24.323202Z","order_side":"BUY","order_type":"Limit","cancel_reason":"User requested cancel","reject_Reason":""}]}]}
So the issue is two-fold:
1: Coinbase does not honor the good-till-time. The order does NOT expire when it should.
2: When I submit a cancel request, Coinbase receives it, as proven by “User requested cancel”, but Coinbase does not ACTUALLY cancel it.
As the order keeps hanging, it eventually gets filled at a time WAY beyond the good-till-time.
Could you please confirm what happened here and whether this is a bug?