You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Peter Turcsanyi (Jira)" <ji...@apache.org> on 2026/01/06 17:47:00 UTC

[jira] [Created] (NIFI-15431) PutSmbFile can fail with "StandardContentClaim is already marked for transfer"

Peter Turcsanyi created NIFI-15431:
--------------------------------------

             Summary: PutSmbFile can fail with "StandardContentClaim is already marked for transfer"
                 Key: NIFI-15431
                 URL: https://issues.apache.org/jira/browse/NIFI-15431
             Project: Apache NiFi
          Issue Type: Bug
            Reporter: Peter Turcsanyi
            Assignee: Peter Turcsanyi


PutSmbFile processes the FlowFiles in batches (one onTrigger fetches N FlowFiles and uploads them in a loop). The error handling of individual FlowFiles is essentially separate: the successfully uploaded files go to the Success relationship while failed ones go to Failure. However, in some error cases - such as directory creation failure or generic error - only the outer level error handler catches the exception. This handler is intended for connection or authentication errors and attempts to transfer all FlowFiles to Failure. This may result in a "StandardContentClaim is already marked for transfer" error, because some FlowFiles in the batch have already been processed successfully and routed to Success. Consequently, the entire batch is rolled back.

Stack trace:
{code:java}
2026-01-06 17:20:32,216 ERROR [Timer-Driven Process Thread-10] o.apache.nifi.processors.smb.PutSmbFile PutSmbFile[id=136e1017-a2b5-3680-b7f5-c08813f8e62e] Processing halted: yielding [1 sec]
org.apache.nifi.processor.exception.FlowFileHandlingException: StandardFlowFileRecord[uuid=698f2cfd-e84e-4cc2-8647-d502926cf92a,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1767716178875-1, container=default, section=1], offset=24, length=4],offset=0,name=698f2cfd-e84e-4cc2-8647-d502926cf92a,size=4] is already marked for transfer
	at org.apache.nifi.controller.repository.StandardProcessSession.validateRecordState(StandardProcessSession.java:3703)
	at org.apache.nifi.controller.repository.StandardProcessSession.validateRecordState(StandardProcessSession.java:3685)
	at org.apache.nifi.controller.repository.StandardProcessSession.validateRecordState(StandardProcessSession.java:3716)
	at org.apache.nifi.controller.repository.StandardProcessSession.transfer(StandardProcessSession.java:2396)
	at org.apache.nifi.processors.smb.PutSmbFile.onTrigger(PutSmbFile.java:418)
	at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
	at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1274)
	at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:229)
	at org.apache.nifi.controller.scheduling.AbstractTimeBasedSchedulingAgent.lambda$doScheduleOnce$0(AbstractTimeBasedSchedulingAgent.java:59)
	at org.apache.nifi.engine.FlowEngine.lambda$wrap$1(FlowEngine.java:105)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)