A method for error handling in a task assignment system with an external pairing system, the method comprising: transmitting, by at least one computer processor communicatively coupled to and configured to operate in the task assignment system, to the external pairing system over an application programming interface, a request for the external pairing system to select a first task between one or more tasks awaiting assignment, the first task to be selected according to a first pairing strategy; determining, by the at least one computer processor, a timeout window to wait for the external pairing system to provide a response that identifies the first task; detecting, by the at least one computer processor, an expiration of the timeout window without receiving the response; in response to detecting the expiration of the timeout window, selecting, by the at least one computer processor, a first pairing between the one or more tasks and one or more agents available for assignment, the first pairing being selected according to a second pairing strategy; determining, by the at least one computer processor, a second timeout window to wait for a second task to be assigned, the second task to be selected according to the first pairing strategy; detecting, by the at least one computer processor, an expiration of the second timeout window; in response to detecting the expiration of the second timeout window, selecting, by the at least one computer processor, a second pairing between remaining tasks of the one or more tasks and remaining agents of the one or more agents, the second pairing being selected according to the second pairing strategy. transmitting, by at least one computer processor communicatively coupled to and configured to operate in the task assignment system, to the external pairing system over an application programming interface, a request for the external pairing system to select a first task between one or more tasks awaiting assignment, the first task to be selected according to a first pairing strategy; determining, by the at least one computer processor, a timeout window to wait for the external pairing system to provide a response that identifies the first task; detecting, by the at least one computer processor, an expiration of the timeout window without receiving the response; in response to detecting the expiration of the timeout window, selecting, by the at least one computer processor, a first pairing between the one or more tasks and one or more agents available for assignment, the first pairing being selected according to a second pairing strategy; determining, by the at least one computer processor, a second timeout window to wait for a second task to be assigned, the second task to be selected according to the first pairing strategy; detecting, by the at least one computer processor, an expiration of the second timeout window; in response to detecting the expiration of the second timeout window, selecting, by the at least one computer processor, a second pairing between remaining tasks of the one or more tasks and remaining agents of the one or more agents, the second pairing being selected according to the second pairing strategy.