A computing system comprising: an I/O hardware endpoint; an I/O hardware endpoint controller in communication with the I/O hardware endpoint and to: detect (S310; S410) an error on the I/O hardware endpoint; and trigger (S320, S420) an interrupt in response to detected error; and a processor to execute an operating system runtime component to: receive the interrupt at the operating system runtime component; in response to the received interrupt, determine (S330; S430) at the operating system runtime component whether to handle the error using an operating system handler or a firmware runtime error handler associated with the I/O hardware endpoint; and if it is determined to handle the error using the firmware runtime error handler associated with the I/O hardware endpoint, trigger (S350; S440) a firmware interrupt associated with the firmware runtime error handler; wherein the processor, while executing the operating system runtime component, is further configured to, in response to the I/O hardware endpoint being replaced: disassociate the I/O hardware endpoint with the firmware runtime error handler; update the operating system to include an operating system error handler associated with the replacement I/O hardware endpoint; and reboot the operating system without re-initializing the hardware of the computing system. an I/O hardware endpoint; an I/O hardware endpoint controller in communication with the I/O hardware endpoint and to: detect (S310; S410) an error on the I/O hardware endpoint; and trigger (S320, S420) an interrupt in response to detected error; and a processor to execute an operating system runtime component to: receive the interrupt at the operating system runtime component; in response to the received interrupt, determine (S330; S430) at the operating system runtime component whether to handle the error using an operating system handler or a firmware runtime error handler associated with the I/O hardware endpoint; and if it is determined to handle the error using the firmware runtime error handler associated with the I/O hardware endpoint, trigger (S350; S440) a firmware interrupt associated with the firmware runtime error handler; wherein the processor, while executing the operating system runtime component, is further configured to, in response to the I/O hardware endpoint being replaced: disassociate the I/O hardware endpoint with the firmware runtime error handler; update the operating system to include an operating system error handler associated with the replacement I/O hardware endpoint; and reboot the operating system without re-initializing the hardware of the computing system. detect (S310; S410) an error on the I/O hardware endpoint; and trigger (S320, S420) an interrupt in response to detected error; and a processor to execute an operating system runtime component to: receive the interrupt at the operating system runtime component; in response to the received interrupt, determine (S330; S430) at the operating system runtime component whether to handle the error using an operating system handler or a firmware runtime error handler associated with the I/O hardware endpoint; and if it is determined to handle the error using the firmware runtime error handler associated with the I/O hardware endpoint, trigger (S350; S440) a firmware interrupt associated with the firmware runtime error handler; wherein the processor, while executing the operating system runtime component, is further configured to, in response to the I/O hardware endpoint being replaced: disassociate the I/O hardware endpoint with the firmware runtime error handler; update the operating system to include an operating system error handler associated with the replacement I/O hardware endpoint; and reboot the operating system without re-initializing the hardware of the computing system. receive the interrupt at the operating system runtime component; in response to the received interrupt, determine (S330; S430) at the operating system runtime component whether to handle the error using an operating system handler or a firmware runtime error handler associated with the I/O hardware endpoint; and if it is determined to handle the error using the firmware runtime error handler associated with the I/O hardware endpoint, trigger (S350; S440) a firmware interrupt associated with the firmware runtime error handler; wherein the processor, while executing the operating system runtime component, is further configured to, in response to the I/O hardware endpoint being replaced: disassociate the I/O hardware endpoint with the firmware runtime error handler; update the operating system to include an operating system error handler associated with the replacement I/O hardware endpoint; and reboot the operating system without re-initializing the hardware of the computing system. disassociate the I/O hardware endpoint with the firmware runtime error handler; update the operating system to include an operating system error handler associated with the replacement I/O hardware endpoint; and reboot the operating system without re-initializing the hardware of the computing system.