Even if it worled, you would have been taking chances. The scope to use in onRequestStart is request.praglink. What's in a name? Then again, I am sure you know that already.
(shrug) I was in a hurry when I wrote it; I can change it.
And I figured out what was wrong, and it really annoys me that CF couldn't point-blank TELL me what the issue was.
As it turns out, there is a query that runs on every page load. The database backup folders were taking up all the disk space on the database. So, the DSN was breaking because of "ORA-00257; archiver error. Connect internal only, until freed." Instead of the error page being displayed, which also emails me the error details, it just decided to not set that variable (just that ONE variable) and break my stuff.
I manually set the variable in my header.cfm document. That's when I finally got my error message with details emailed to me.
WTF??? Nothing in the logs to indicate why the error template was not triggered.
Request is a better scope to use but this may be a secondary error you are seeing here. If you have code executing before the cfset that throws an exception, and you have an error trap that uses a common output template, this may be a case where variables.praglink really is not set (I know, I have had similar issue like this).