So of course the docs should mention that there are error variables? 

They do, it is just [buried and not obvious.|http://developer.novell.com/documentation/dirxml/dirxmlbk/ref/dirxmlscript/do-start-workflow.html|target='_blank']

Right after a do-start-workflow event, if there is an error, the error variable, "error.do-start-workflow" will have a value.
The [DirXML Example] Code below will catch when there is a value for [{$pagename}]:
%%prettify 
{{{
<do-if>
	<arg-conditions>
		<and>
			<if-local-variable mode="regex" name="error.do-start-workflow" op="equal">.+</if-local-variable>
		</and>
	</arg-conditions>
	<arg-actions>
		<do-trace-message level="3">
			<arg-string>
				<token-text xml:space="preserve">Workflow Error Detected PLACEHOLDER</token-text>
			</arg-string>
		</do-trace-message>
	</arg-actions>
	<arg-actions/>
</do-if>
}}} /%
This will catch it.  Do inside the IF what you desire.

Alas, Find Matching stores it as funny values of the dest-dn, strange Unicode values.

!! [DIR-XML-Error-Variables]

Many thanks to [Geoffrey Carman|Geoffc] for this and [all of His fine IDM work|http://www.novell.com/coolsolutions/author/364.html|target='_blank']

!! More Information
There might be more information for this subject on one of the following:
[{ReferringPagesPlugin before='*' after='\n' }]