Forum Discussion
Scheduling a User Data Functions item directly fails every time with "FunctionName is null or empty"
Hi all,
I'm running into an issue with the native Schedule option on a User Data Functions item (not the Data Pipeline Functions activity, the Schedule button on the UDF item itself). Every single scheduled run fails with:
[{"errorCode":"WorkloadException","subErrorCode":"WorkloadException","message":"Invalid Argument: FunctionName. FunctionName is null or empty. Please provide a valid value"}]
At first I thought this was because I had more than one function in the item and the scheduler didn't know which one to trigger, but I trimmed the item down to a single function and it still fails the exact same way. So it doesn't seem to be a "multiple functions" thing.
What I did:
- Created a UDF item with one function, published it, tested it manually - works fine, returns the expected output.
- Set up a Schedule on the item and let it run for a while.
- Checked Monitor - every run failed with the error above.
In the Monitor run details, both "Function name" and "Invocation ID" show up blank (--), so it really looks like the scheduled trigger just isn't passing a function name at all when it kicks off the run.
Things I already tried:
- Deleted and recreated the schedule
- Reduced the udf to a single function
- Manual run of the function: works every time
- Calling the same function from a Data Pipeline Functions activity (where you explicitly pick the function in the activity settings) and scheduling the pipeline instead: works fine, no problems at all
So the function itself is clearly not the problem, it's specifically the item-level Schedule that seems broken - it's just not sending FunctionName in the invocation request the way the Pipeline activity does.
Anyone else seen this, or know of a fix/workaround? Happy to share invocation IDs or more logs if it helps.
4 Replies
- v-sathmakuriCommunity Support
Hi alessanzo ,
Thank you for reaching out to fabric community.
Could you review the suggestion provided by Kagiyama_yutaka & ShivekMaharaj and let us know if you have any additional questions, we are happy to address.
Thanks!!
- v-sathmakuriCommunity Support
Hi alessanzo ,
Could you check the suggestion provided above and let us know if you have any additional queries?
Thanks!!
- ShivekMaharajImpactful Individual
Hi alessanzo,
I think your testing has already narrowed this down quite well. I would also be looking at the item-level scheduler rather than the function itself here.
Microsoft now documents native scheduling for User Data Functions, and the expected flow is that a published function is invoked by the Fabric Job Scheduler without needing a pipeline.
What stands out in your case is this part:
FunctionName is null or empty
combined with the Monitor entry showing neither a function name nor an invocation ID.
A normal UDF invocation has a specific published function as its target, and Microsoft documents invokable functions as those exposed through @udf.function(). If the same function runs manually and also works from a Functions activity in a pipeline, I would not expect the function implementation itself to be the cause.
My suspicion would therefore be that the schedule is being created at item level, but the scheduler is not persisting/resolving the actual published function name when the job is submitted.
One thing I would try is:
- Publish the UDF again.
- Remove all existing schedules.
- Close/reopen the UDF item and create a completely new schedule after the publish has completed.
- Check whether even a manual Run now from that newly created schedule produces the same blank FunctionName.
If it still returns the same error, I would treat this as a likely scheduler-side issue and raise it with Microsoft Support. The blank function name plus missing invocation ID would be useful evidence to include, together with the workspace/item IDs and timestamp of the failed job.
As a workaround, your pipeline approach is valid for now. Microsoft also supports calling a UDF explicitly through the User Data Functions activity in a pipeline, where the workspace, UDF item and exact function are selected directly.
I’d be interested to know whether recreating the schedule after a fresh publish changes the behaviour, because that would help distinguish stale schedule metadata from a broader scheduler issue.
- Kagiyama_yutakaResponsive Resident
UDF schedule fails when the scheduler does not send a FunctionName. The pipeline path works because it always includes the function name. The UDF scheduler also needs the same auth method and UDF binding that the pipeline uses. mismatch makes the scheduled run fail even when FunctionName is present.