Yesterday afternoon, we detected an anomaly in our trade activity. Starting at 17:54 UTC, any order submitted with a specific field set (clientorderid) was executed incorrectly, and then accounted for inaccurately. At 17:56 UTC our automated balance audits detected the error and froze all withdrawals. At 18:05 UTC we put the site into maintenance mode so we could diagnose and address the problem.
After finding and correcting the issue, we determined that the bug affected too many trades to correct manually. Therefore, we had to roll back 12 minutes of trade history (from 17:53 UTC to 18:05 UTC on February 10, 2020). Any orders that were placed or executed during this time were removed from the system. For customers whose trades were reversed, we have reached out individually to explain what happened and apologize.
Though we caught the issue very quickly, we are putting measures in place to prevent it from recurring. First, we are putting additional tests and checks in place. Second, we are adding new monitoring and alerts to our system—above and beyond those that caught yesterday’s issue. Finally, we have invested a great deal of engineering time into improving and strengthening our software and infrastructure, and we intend to continue investing significantly throughout 2020.
We know how serious it is to reverse trades. We view this as a measure of last resort and this is the first time we’ve ever needed to do it. Additionally, we understand how frustrating downtime is for our customers. Crypto markets are always active and we want to provide a reliable platform for customers to trade at all times. We appreciate your patience as we continue to improve our platform.