A new approach to process modelling, task synthesis and motion control for robotic assembly, with emphasis on error detection and recovery, is presented. Assembly is modelled as a discrete event system using Petri nets. The abstraction to a discrete event system allows for the detection of state transitions including errors via a simple qualitative reasoning technique. The abstraction to a discrete event system also allows for task-level planning and control using velocity constraints derived from a geometric model of the process. Given the event recognition, task-level planning and task-level control, error detection and recovery are accomplished through a reconfiguration strategy based on contingency states. Experimentation verifies the success of the approach in the presence of both modelling and tracking errors.