[Coldbox 7/2.1] Scheduled Tasks Possible Chicken/Egg Problem with CBAuth

I have noticed that whenever I reinit a Coldbox app that uses Coldbox scheduled tasks, that the task immediately throws the following exception:

“coldfusion.runtime.CustomException: Injector not found in scope registration information”

StackTrace: coldfusion.runtime.CustomException: Injector not found in scope registration information
        at coldfusion.tagext.lang.ThrowTag.doStartTag(ThrowTag.java:139)
        at coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:5201)
        at cfProvider2ecfc1272647826$func$GET.runFunction(D:\Dropbox\Repositories\myapp\coldbox\system\ioc\Provider.cfc:79)
        at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:623)
        at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:553)
        at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:516)
        at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95)
        at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:463)
        at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:438)
        at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:310)
        at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:5021)
        at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:5001)
        at cfProvider2ecfc1272647826$funcONMISSINGMETHOD.runFunction(D:\Dropbox\Repositories\myapp\coldbox\system\ioc\Provider.cfc:92)
        at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:623)
        at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:553)
        at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:516)
        at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95)
        at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:463)
        at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:438)
        at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:417)
        at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:996)
        at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:696)
        at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:503)
        at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4264)
        at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4227)
        at cfBaseQuickEntity2ecfc1714363623$funcGETCURRENTUSERID.runFunction(D:\Dropbox\Repositories\myapp\models\BaseQuickEntity.cfc:119)

I traced the stack to a function that accesses an instance of provider:authenticationService@cbauth. My gut tells me that this is a chicken/egg problem where cbauth, hasn’t been loaded yet by the time the task executes.

I have my scheduled tasks set up with a delay of 60 seconds, but it looks like Coldbox is ignoring my delay configuration, no matter what number I put in there, and tries to execute the task immediately regardless:

task( "NightlyMaintenance" )
	.call( function() {
		getInstance( "Maintenance" ).run();
	} )
	.onFailure( function( task, exception ) {
		writeDump( var="Maintenance Plan Failed!", output="console" );
	} )
	.onSuccess( function( task ) {
	} )
	.withNoOverlaps()
	.delay( 60000 ) // 60 second delay (Coldbox is ignoring)
	.everyHourAt( "00" ); // Just for testing
}

Could this be a bug in the delay() or is there some other way to prevent the Scheduler from executing until all dependencies are loaded?

Thanks for your help!

This might be related to the above issue. Whenever the scheduler executes a task for the first time after reinit, I get an exception stating that it cannot find an instance of models.maintenance.Maintenance. When the scheduled task runs again, it completes without error. I can verify that CFC does exist, and it’s strange that it throws the exception on the first execution after a reinit.

Running ACF 2021

CUSTOM TimeStamp: {ts '2024-04-25 00:29:58'}
Severity: 1
Category: coldbox.system.web.tasks.ColdBoxScheduledTask
Stacktrace for task (NightlyMaintenance) : coldfusion.runtime.CfJspPage$NoSuchTemplateException: Could not find the ColdFusion component or interface models.maintenance.Maintenance.
   at coldfusion.runtime.TemplateProxyFactory.getResolvedFile(TemplateProxyFactory.java:1576 undefined)
   at coldfusion.runtime.TemplateProxyFactory.getTemplateFileHelper(TemplateProxyFactory.java:1812 undefined)
   at coldfusion.runtime.MetadataUtils.getComponentMetadata(MetadataUtils.java:143 undefined)
   at coldfusion.runtime.CfJspPage.GetComponentMetadata(CfJspPage.java:5134 undefined)
   at cfUtil2ecfc997187453$funcGETINHERITEDMETADATA.runFunction(C:\websites\api2.ccisbonds.com\wwwroot\coldbox\system\core\util\Util.cfc:414 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:623 undefined)
   at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:516 undefined)
   at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:463 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:438 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:310 undefined)
   at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:975 undefined)
   at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:696 undefined)
   at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:503 undefined)
   at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4264 undefined)
   at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4227 undefined)
   at cfMapping2ecfc685578670$func_CF_ANONYMOUSCLOSURE_483.runFunction(C:\websites\api2.ccisbonds.com\wwwroot\coldbox\system\ioc\config\Mapping.cfc:604 undefined)
   at coldfusion.runtime.Closure.invoke(Closure.java:171 undefined)
   at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:516 undefined)
   at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:463 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:438 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:310 undefined)
   at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:5021 undefined)
   at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:5001 undefined)
   at cfMapping2ecfc685578670$funcPROCESS.runFunction(C:\websites\api2.ccisbonds.com\wwwroot\coldbox\system\ioc\config\Mapping.cfc:615 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:623 undefined)
   at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:553 undefined)
   at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:516 undefined)
   at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:463 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:438 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:681 undefined)
   at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:980 undefined)
   at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:762 undefined)
   at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4175 undefined)
   at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4139 undefined)
   at cfInjector2ecfc981719505$funcGETINSTANCE.runFunction(C:\websites\api2.ccisbonds.com\wwwroot\coldbox\system\ioc\Injector.cfc:570 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:623 undefined)
   at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:516 undefined)
   at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:463 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:438 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:681 undefined)
   at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:980 undefined)
   at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:762 undefined)
   at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4175 undefined)
   at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4139 undefined)
   at coldfusion.runtime.CFPage.invoke(CFPage.java:16847 undefined)
   at cfMixerUtil2ecfc920924655$funcGETBYDELEGATE.runFunction(C:\websites\api2.ccisbonds.com\wwwroot\coldbox\system\core\dynamic\MixerUtil.cfc:221 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:623 undefined)
   at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:516 undefined)
   at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:463 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:438 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:310 undefined)
   at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:5021 undefined)
   at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:5001 undefined)
   at cfScheduler2ecfc905349278$func_CF_ANONYMOUSCLOSURE_244.runFunction(C:\websites\api2.ccisbonds.com\wwwroot\config\Scheduler.cfc:40 undefined)
   at coldfusion.runtime.Closure.invoke(Closure.java:171 undefined)
   at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:516 undefined)
   at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:463 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:438 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:310 undefined)
   at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:5021 undefined)
   at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:5001 undefined)
   at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4289 undefined)
   at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4227 undefined)
   at cfScheduledTask2ecfc1992851498$funcRUN.runFunction(C:\websites\api2.ccisbonds.com\wwwroot\coldbox\system\async\tasks\ScheduledTask.cfc:702 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:623 undefined)
   at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:516 undefined)
   at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:463 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:438 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:310 undefined)
   at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:975 undefined)
   at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:696 undefined)
   at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:503 undefined)
   at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4264 undefined)
   at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4227 undefined)
   at coldfusion.runtime.CFPage.invoke(CFPage.java:16854 undefined)
   at coldfusion.runtime.CFPage.invoke(CFPage.java:16809 undefined)
   at cfRunnable2ecfc1005550918$funcRUN.runFunction(C:\websites\api2.ccisbonds.com\wwwroot\coldbox\system\async\cbproxies\models\Runnable.cfc:37 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:623 undefined)
   at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:516 undefined)
   at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:463 undefined)
   at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:438 undefined)
   at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:310 undefined)
   at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:975 undefined)
   at coldfusion.runtime.TemplateProxy.proxyInvoke(TemplateProxy.java:734 undefined)
   at coldfusion.runtime.java.CFCDynamicProxy.invoke(CFCDynamicProxy.java:178 undefined)
   at com.sun.proxy.$Proxy61.run(Unknown Source)
   at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515 undefined)
   at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305 undefined)
   at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305 undefined)
   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128 undefined)
   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628 undefined)
   at java.base/java.lang.Thread.run(Thread.java:834 undefined)