Skip to content

fix(rclcpp_action): allow publishing feedback in canceling state (fixes #3283) - #3397

Open
Aaravanand00 wants to merge 1 commit into
ros2:rollingfrom
Aaravanand00:fix-action-feedback-in-canceling-state
Open

Aaravanand00 wants to merge 1 commit into
ros2:rollingfrom
Aaravanand00:fix-action-feedback-in-canceling-state

Conversation

@Aaravanand00

Copy link
Copy Markdown
Contributor

Description

Per ROS 2 REP-161 (Action Design), CANCELING is an active (non-terminal) state where the action server is performing graceful cancellation or cleanup procedures. During this state, an action server should be able to publish progress or feedback to the client (e.g., reporting deceleration or cancellation progress).

Previously, ServerGoalHandle::publish_feedback() checked if (!is_executing()), which inadvertently dropped feedback and emitted a warning whenever a goal transitioned into the CANCELING state (#3283).

This PR:

  • Updates ServerGoalHandle::publish_feedback() to permit publishing when is_executing() or is_canceling().
  • Updates documentation and warning messages accordingly.
  • Adds publish_feedback_canceling and publish_feedback_after_canceled unit tests in rclcpp_action/test/test_server_goal_handle.cpp and verifies feedback callback counters.
  • Adds an end-to-end integration test publish_feedback_canceling in rclcpp_action/test/test_server.cpp.

Fixes #3283

Is this user-facing behavior change?

Yes, action servers can now publish feedback messages while a goal handle is in the CANCELING state, rather than having the feedback ignored with a warning log.

Did you use Generative AI?

Yes I was used to assist with code navigation, test case structuring, and verification.

Additional Information

  • Verified locally with ament_cpplint (0 problems found).
  • Verified locally with ament_uncrustify (0 code style divergence).

@Aaravanand00

Copy link
Copy Markdown
Contributor Author

@jmachowinski @fujitatomoya ptal is this looks good?

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

ABI Compliance Check

✅ Verdict: compatible

Library Verdict Summary
libcomponent_manager.so ✅ compatible No ABI changes detected.
librclcpp.so ✅ compatible No ABI changes detected.
librclcpp_action.so ✅ compatible No ABI changes detected.
librclcpp_lifecycle.so ✅ compatible No ABI changes detected.
✅ libcomponent_manager.so — full abidiff report

Compared:

  • Base: lib-base/libcomponent_manager.so
  • Head: lib-pr/libcomponent_manager.so @ 881d921
(empty report — no differences printed by abidiff)
✅ librclcpp.so — full abidiff report

Compared:

  • Base: lib-base/librclcpp.so
  • Head: lib-pr/librclcpp.so @ 881d921
Functions changes summary: 0 Removed, 0 Changed (93 filtered out), 0 Added (3 filtered out) functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable


✅ librclcpp_action.so — full abidiff report

Compared:

  • Base: lib-base/librclcpp_action.so
  • Head: lib-pr/librclcpp_action.so @ 881d921
(empty report — no differences printed by abidiff)
✅ librclcpp_lifecycle.so — full abidiff report

Compared:

  • Base: lib-base/librclcpp_lifecycle.so
  • Head: lib-pr/librclcpp_lifecycle.so @ 881d921
(empty report — no differences printed by abidiff)

Updated for commit 881d921 · check run · suppressions: /home/runner/work/_temp/ros2-abi-suppressions.txt

@Aaravanand00
Aaravanand00 force-pushed the fix-action-feedback-in-canceling-state branch from 72658d2 to 881d921 Compare November 5, 2026 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cannot publish action feedback in CANCELING state

3 participants