# 104012: Run steer handler failed Identifier: `run_steer_handler_failed` A developer-supplied onSteer hook threw while AI Transport was notifying a run that a steering message had folded into it. The run itself is unaffected, because only the notification failed. ## What you should do The fault is in your own handler, not the transport: inspect the `cause` for what it threw and make your `onSteer` callback handle its own errors so it returns normally. You will not catch this from a call you made. Because it arises while the SDK is handling an inbound message, it is delivered to the run's `onError` handler if you supplied one, and otherwise to the session's error handler; handle it in whichever you use. The steering message itself is safe. It folded into the run before the hook was called, so it is still there to be read on the run's next pass; what was lost is the prompt to pick it up straight away. ## Why it happens A client can steer a run that is already in flight by publishing a steering message to it. When one folds into the run, the SDK calls that run's `onSteer` hook once so the agent can react. This error is raised when the hook throws, with the thrown value preserved as the `cause`. The hook is called in isolation, so a handler that throws cannot break the run's steering. ## What you'll see The error is reported with code 104012 and status 500. The message names the run and the hook, in the form `unable to notify steer for run ...; onSteer handler threw: ...`.