When I got home, I checked online and found that the error is a 'Sensor Error', meaning that the magnet on the rear wheel is not correctly lined up with the sensor as the wheel turns. I got a screwdriver and adjusted the position of the magnet to what I thought was more central, then took the bike for a test ride. Within a few minutes, I got the same error.
I emailed John at Dolomiti cycles, who contacted Bosch. This was the response:
Hi John,
Yes, 503 is the on-screen error for a speed sensor issue. If you are able to get the bike and connect to the Bosch Diagnostic Software, then you will get more detail on the error type.
The first possibility is magnet position which your customer may have already checked. Still, it’s worth asking if they’ve lined it up with the sensor line, not the sensor bolt (a common mixup):
Also check that the customer is using the Bosch original spoke magnet. The genuine one is very strong compared to a normal bike speedo magnet and others are unlikely to be strong enough to give a clean signal to the sensor.
I had lined up the magnet in the centre of the sensor, not near the sensor line.
Since repositioning the magnet to line up with the mark, I have not had any further 503 errors.