How Attributes Move Through a Flow

Modified on Thu, 11 Dec, 2025 at 11:46 AM

Summary

Attributes travel with a FlowFile as it moves through a flow, but different processors handle attributes differently. Some preserve them, some modify them, and some create new FlowFiles with only a subset of attributes. Understanding attribute propagation is essential for debugging and designing reliable flows.


The default behavior: attributes move with the FlowFile

When a processor receives a FlowFile and routes it forward, the FlowFile’s attributes move forward unchanged unless the processor explicitly adds, updates, or removes them.


In most flows:

  • Routing decisions rely entirely on attributes

  • Attributes accumulate as the FlowFile progresses

  • Downstream processors expect attributes to exist


If an attribute disappears or changes unexpectedly, something in the middle modified it.


Processors that add attributes

Many processors add metadata automatically, such as:

  • InvokeHTTP → status codes, timing, MIME type

  • ExtractAttributes→ extracted fields

  • HashContent → hash attributes

  • ExtractText → regex match output

  • ListFile → file metadata


These become part of the FlowFile and travel with it.


Processors that modify or replace attributes

Some processors will overwrite attributes or rewrite internal metadata:

  • UpdateAttribute (you control what changes)

  • ListFile may replace certain file-related attributes

  • Record processors may add new metadata like record counts

  • Certain API processors overwrite mime.type or similar fields

Small changes here often cause unexpected routing downstream.


Processors that create new FlowFiles with different attributes

Not every processor “passes through” the original FlowFile.
Some generate brand new FlowFiles, and attribute behavior differs.

Split processors

Examples: SplitJson, SplitRecord, SplitContent

  • Each output FlowFile inherits the original attributes

  • Some processors add split-specific attributes (fragment counts, indexes)

Merge processors

Examples: MergeContent, MergeRecord

  • Output FlowFile may:

    • Keep selected attributes

    • Drop conflicting attributes

    • Add merge metadata

  • Child attributes often supersede or override one another depending on processor settings

Generate processors

Examples: GenerateFlowFile

  • Output FlowFiles start with only the attributes the processor defines

  • Nothing is inherited


Processors that intentionally drop attributes

Some processors create system-generated FlowFiles, discarding original attributes entirely.


Examples:

  • ExecuteScript on certain routes

  • Some error-handling branches

  • Certain transformations that emit new content as a new FlowFile


If attributes suddenly vanish, check whether the processor created a new FlowFile instead of forwarding the original.


Attribute propagation across relationships

Attributes move independently down each relationship.


Example:
RouteOnAttribute splits a FlowFile onto two paths:

  • Each new FlowFile gets the same attributes as the original

  • Additional route-specific attributes may be added (e.g., matched rule name)


Each branch evolves separately after that point.


How processors use attributes to build outgoing content

Record processors, transformation processors, and templating processors may read attributes to construct:

  • File paths

  • API request URLs

  • SQL queries

  • Routing keys

  • Output filenames


Attributes don’t just travel — they directly shape what downstream processors do.


Why this matters for debugging

When a FlowFile doesn’t behave as expected:

  1. Check the attributes before and after a processor in Provenance

  2. Look for overwritten, missing, or transformed values

  3. Identify whether a processor created a new FlowFile

90 percent of “wrong route” or “invalid processor” issues come from attribute changes.


Quick rules to remember

  • Attributes move with a FlowFile unless a processor replaces the FlowFile.

  • Splits inherit attributes; merges may drop or remap them.

  • Many processors add attributes automatically; learn the common ones.

  • Debugging always starts with inspecting attribute history in provenance.


Related Articles

  • FlowFile Content vs Attributes

  • Attribute Evaluation and Expression Language Basics

  • Best Practices for Attributes

  • Common Attribute Patterns

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article