Summary
When an action aborts before the action_status_bridge can resolve the action server's node FQN (slow or flaky DDS discovery), the fault is reported immediately using the action interface name as the source. Reporting the fault on time is intentional (freeze-frame / snapshot timing is tied to the first CONFIRMED). But the fault then cannot be re-attributed to the server node entity: reporting_sources is append-only on the FaultManager side, and the per-entity /faults scope filter (fault_in_source_scope) is strict-AND, so the provisional action-name source permanently keeps the fault out of the server node entity.
Proposed solution (optional)
Add a way to supersede a provisional reporting source. For example, an optional supersedes_source_id field on ReportFault, with the FaultManager removing the old source when the new one is reported. The bridge would then report immediately on the action-name fallback (fault and snapshot on time) and, once the FQN resolves, re-report under the FQN with supersedes_source_id set to the action name, ending with reporting_sources = {FQN} so the fault resolves to the server entity.
Additional context (optional)
In the action_status_bridge the reporter source is fixed at the first report (server FQN if discovery resolved, otherwise the action name) and not re-attributed, precisely because of the append-only + strict-AND constraints above.
Summary
When an action aborts before the
action_status_bridgecan resolve the action server's node FQN (slow or flaky DDS discovery), the fault is reported immediately using the action interface name as the source. Reporting the fault on time is intentional (freeze-frame / snapshot timing is tied to the first CONFIRMED). But the fault then cannot be re-attributed to the server node entity:reporting_sourcesis append-only on the FaultManager side, and the per-entity/faultsscope filter (fault_in_source_scope) is strict-AND, so the provisional action-name source permanently keeps the fault out of the server node entity.Proposed solution (optional)
Add a way to supersede a provisional reporting source. For example, an optional
supersedes_source_idfield onReportFault, with the FaultManager removing the old source when the new one is reported. The bridge would then report immediately on the action-name fallback (fault and snapshot on time) and, once the FQN resolves, re-report under the FQN withsupersedes_source_idset to the action name, ending withreporting_sources = {FQN}so the fault resolves to the server entity.Additional context (optional)
In the
action_status_bridgethe reporter source is fixed at the first report (server FQN if discovery resolved, otherwise the action name) and not re-attributed, precisely because of the append-only + strict-AND constraints above.