Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue calling /rosapi/MessageDetails: KeyError: 'check_fields' #976

Open
sebabouche opened this issue Nov 20, 2024 · 0 comments
Open

Issue calling /rosapi/MessageDetails: KeyError: 'check_fields' #976

sebabouche opened this issue Nov 20, 2024 · 0 comments
Labels

Comments

@sebabouche
Copy link

sebabouche commented Nov 20, 2024

Description
I had an issue trying to get a common message definition through the rosbridge server.
So I tried to mimic it with the command line and it bugged similarly.

  • Library Version: 2.1.0
  • ROS Version: Jazzy
  • Platform / OS: Ubuntu 24.04.1 LTS

Steps To Reproduce

ros2 service call /rosapi/message_details rosapi_msgs/srv/MessageDetails "{'type': 'sensor_msgs/JointState'}"

or

ros2 service call /rosapi/message_details rosapi_msgs/srv/MessageDetails "{type: 'sensor_msgs/JointState'}"

Expected Behavior
I would expect to get something like:

std_msgs/Header header
string[] name
float64[] position
float64[] velocity
float64[] effort

Actual Behavior

These are the logs I get, with a KeyError: 'check_fields'

[rosapi_node-5] /usr/lib/python3/dist-packages/apt/cache.py:215: Warning: W:Target Packages (main/binary-arm64/Packages) is configured multiple times in /etc/apt/sources.list.d/ros2-latest.list:1 and /etc/apt/sources.list.d/ros2.list:1, W:Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list.d/ros2-latest.list:1 and /etc/apt/sources.list.d/ros2.list:1, W:Target DEP-11 (main/dep11/Components-arm64.yml) is configured multiple times in /etc/apt/sources.list.d/ros2-latest.list:1 and /etc/apt/sources.list.d/ros2.list:1, W:Target DEP-11 (main/dep11/Components-all.yml) is configured multiple times in /etc/apt/sources.list.d/ros2-latest.list:1 and /etc/apt/sources.list.d/ros2.list:1
[rosapi_node-5]   self._depcache = apt_pkg.DepCache(self._cache)
[rosapi_node-5] Traceback (most recent call last):
[rosapi_node-5]   File "/opt/ros/jazzy/lib/rosapi/rosapi_node", line 329, in <module>
[rosapi_node-5]     main()
[rosapi_node-5]   File "/opt/ros/jazzy/lib/rosapi/rosapi_node", line 321, in main
[rosapi_node-5]     rclpy.spin(node)
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rclpy/__init__.py", line 244, in spin
[rosapi_node-5]     executor.spin_once()
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rclpy/executors.py", line 827, in spin_once
[rosapi_node-5]     self._spin_once_impl(timeout_sec)
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rclpy/executors.py", line 822, in _spin_once_impl
[rosapi_node-5]     raise handler.exception()
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rclpy/task.py", line 239, in __call__
[rosapi_node-5]     self._handler.send(None)
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rclpy/executors.py", line 508, in handler
[rosapi_node-5]     await call_coroutine()
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rclpy/executors.py", line 447, in _execute
[rosapi_node-5]     response = await await_or_execute(srv.callback, request, srv.srv_type.Response())
[rosapi_node-5]                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rclpy/executors.py", line 111, in await_or_execute
[rosapi_node-5]     return callback(*args)
[rosapi_node-5]            ^^^^^^^^^^^^^^^
[rosapi_node-5]   File "/opt/ros/jazzy/lib/rosapi/rosapi_node", line 228, in get_message_details
[rosapi_node-5]     dict_to_typedef(d) for d in objectutils.get_typedef_recursive(request.type)
[rosapi_node-5]                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rosapi/objectutils.py", line 115, in get_typedef_recursive
[rosapi_node-5]     return _get_typedefs_recursive(type, [])
[rosapi_node-5]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rosapi/objectutils.py", line 285, in _get_typedefs_recursive
[rosapi_node-5]     typedef = get_typedef(type)
[rosapi_node-5]               ^^^^^^^^^^^^^^^^^
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rosapi/objectutils.py", line 91, in get_typedef
[rosapi_node-5]     type_def = _get_typedef(instance)
[rosapi_node-5]                ^^^^^^^^^^^^^^^^^^^^^^
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rosapi/objectutils.py", line 149, in _get_typedef
[rosapi_node-5]     fieldnames, fieldtypes, fieldarraylen, examples = _handle_array_information(instance)
[rosapi_node-5]                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rosapi/objectutils.py", line 178, in _handle_array_information
[rosapi_node-5]     field_type, arraylen = _handle_type_and_array_len(instance, name)
[rosapi_node-5]                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rosapi_node-5]   File "/opt/ros/jazzy/lib/python3.12/site-packages/rosapi/objectutils.py", line 194, in _handle_type_and_array_len
[rosapi_node-5]     field_type = instance._fields_and_field_types[name[1:]]
[rosapi_node-5]                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
[rosapi_node-5] KeyError: 'check_fields'
[ERROR] [rosapi_node-5]: process has died [pid 6530, exit code 1, cmd '/opt/ros/jazzy/lib/rosapi/rosapi_node --ros-args -r __node:=rosapi --params-file /tmp/launch_params_rv4kl86a --params-file /tmp/launch_params_h27onfib --params-file /tmp/launch_params_7_wghq8v'].
@sebabouche sebabouche added the bug label Nov 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant