Skip to content

[bug] Internal error executing set_vfo #1900

Description

@AI7BQ

Description

Beginning with v2.11.1, Rigplane is unable to maintain connection to IC-9700 via LAN. This issue does not exist with v2.11.0 or earlier. Fails with ERROR Internal error executing set_vfo. See debug log below.

Steps to Reproduce

STEP #1. Install Rigplane v2.11.1
STEP #2. Launch Rigplane with systemd unit file
STEP #3. Rigplane exits with ERROR Internal error executing set_vfo
STEP #4. Downgrade to Rigplane v2.11.0 -- WORKS NORMALLY

[Unit]
Description=Rigplane Daemon (User Context)
After=network.target rigplane-audio.service
Requires=rigplane-audio.service

[Service]
Type=simple
User=username
Group=groupname
WorkingDirectory=/srv/rigplane
Environment=XDG_RUNTIME_DIR=/run/user/1000
Environment=PULSE_SERVER=unix:/run/user/1000/pulse/native
Environment=PULSE_SINK=RigAudioRx
Environment=PULSE_SOURCE=RigAudioTx.monitor
ExecStartPre=/bin/sh -c '/usr/bin/pactl list short sinks | /bin/grep -q "RigAudioRx" || /usr/bin/pactl load-module module-null-sink sink_name=RigAudioRx sink_properties=device.description="Rigplane_RX_Bridge" >/dev/null'
ExecStartPre=/bin/sh -c '/usr/bin/pactl list short sinks | /bin/grep -q "RigAudioTx" || /usr/bin/pactl load-module module-null-sink sink_name=RigAudioTx sink_properties=device.description="Rigplane_TX_Bridge" >/dev/null'
ExecStart=/srv/rigplane/.venv/bin/rigplane --backend lan --model IC-9700 web --host 0.0.0.0 --port 9999 --radio-host 192.168.1.19 --radio-user AI7BQ --radio-pass-file /srv/rigplane/passfile.conf --bridge pulse --bridge-tx-device pulse --rigctld --rigctld-port 4532 --wsjtx-compat
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target

Radio Model

IC-9700

rigplane Version

v2.11.1

Python Version

3.11.2

OS

Debian GNU/Linux 12 (bookworm)

Debug Log

Jun 22 14:33:40 pat systemd[1]: Starting rigplane.service - Rigplane Daemon (User Context)...
Jun 22 14:33:40 pat systemd[1]: Started rigplane.service - Rigplane Daemon (User Context).
Jun 22 14:33:41 pat rigplane[107665]: Logging to /home/jsimpson/.cache/rigplane/logs/rigplane.log (rotate at 50000000 bytes, keep 5 backups)
Jun 22 14:33:41 pat rigplane[107665]: 14:33:41 INFO UDP open to 192.168.1.19:50001, my_id=0x0001D7B1
Jun 22 14:33:41 pat rigplane[107665]: 14:33:41 INFO I Am Here received, remote_id=0x0A5E5901
Jun 22 14:33:41 pat rigplane[107665]: 14:33:41 INFO I Am Ready received
Jun 22 14:33:41 pat rigplane[107665]: 14:33:41 INFO Discovery complete, remote_id=0x0A5E5901
Jun 22 14:33:41 pat rigplane[107665]: 14:33:41 INFO Authenticated with 192.168.1.19:50001, token=0x1A833862
Jun 22 14:33:42 pat rigplane[107665]: 14:33:42 INFO Status: civ_port=50002, audio_port=50003, error=0x00000000, disconnected=False
Jun 22 14:33:42 pat rigplane[107665]: 14:33:42 INFO UDP open to 192.168.1.19:50002, my_id=0x00018184
Jun 22 14:33:42 pat rigplane[107665]: 14:33:42 INFO I Am Here received, remote_id=0x9B1BD286
Jun 22 14:33:42 pat rigplane[107665]: 14:33:42 INFO I Am Ready received
Jun 22 14:33:42 pat rigplane[107665]: 14:33:42 INFO Discovery complete, remote_id=0x9B1BD286
Jun 22 14:33:42 pat rigplane[107665]: 14:33:42 INFO civ-data-watchdog: started
Jun 22 14:33:43 pat rigplane[107665]: 14:33:43 INFO Connected to 192.168.1.19 (control=50001, civ=50002)
Jun 22 14:33:43 pat rigplane[107665]: 14:33:43 INFO initial state fetch (63 queries, gap=12ms)...
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO initial state fetch done (63/63 ok)
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO AudioFftScope: fft_size=2048 fps=20 window=hann avg=2 sr=48000
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO Audio FFT scope available (has_audio=True, has_hw_scope=True)
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO rigplane (IC-9700): state idle → connecting (reason=start, attempt=0)
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO rigplane (IC-9700): using device 'pulse' (id 6)
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO rigplane (IC-9700): bridge codec=PCM_1CH_16BIT input_channels=1 output_channels=1 sample_rate=48000 duplex_mode=full
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO audio-bus: +subscriber 'audio-bridge' (1 total)
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO UDP open to 192.168.1.19:50003, my_id=0x0001AEB7
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO I Am Here received, remote_id=0x9AAE69D1
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO I Am Ready received
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO Discovery complete, remote_id=0x9AAE69D1
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO Audio transport connected on port 50003
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO Audio RX started (jitter_depth=5)
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO audio-bus: RX started
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO Audio TX started
Jun 22 14:33:45 pat rigplane[107665]: 14:33:45 INFO rigplane (IC-9700): same-device RX+TX (id 6) — opening single full-duplex stream (MOR-531)
Jun 22 14:33:46 pat rigplane[107665]: 14:33:46 INFO rigplane (IC-9700): state connecting → running (reason=started, attempt=0)
Jun 22 14:33:46 pat rigplane[107665]: 14:33:46 INFO rigplane (IC-9700): started (RX+TX, 48000Hz, 1ch, 20ms frames)
Jun 22 14:33:46 pat rigplane[107665]: 14:33:46 INFO rigctld listening on 0.0.0.0:4532
Jun 22 14:33:46 pat rigplane[107665]: 14:33:46 INFO band-plan: no band-plans/ directory found
Jun 22 14:33:46 pat rigplane[107665]: 14:33:46 INFO web server listening on http://0.0.0.0:9999
Jun 22 14:33:46 pat rigplane[107665]: 14:33:46 INFO radio-poller: started
Jun 22 14:33:46 pat rigplane[107665]: 14:33:46 INFO discovery responder listening on 0.0.0.0:8470 (UDP)
Jun 22 14:33:46 pat rigplane[107665]: 14:33:46 INFO radio-poller: NB controls fetched
Jun 22 14:33:46 pat rigplane[107665]: 14:33:46 INFO ws connect: /api/v1/scope 192.168.1.55:33936 (active=1)
Jun 22 14:33:46 pat rigplane[107665]: 14:33:46 INFO scope: enable queued
Jun 22 14:33:46 pat rigplane[107665]: 14:33:46 INFO radio-poller: scope enabled
Jun 22 14:33:47 pat rigplane[107665]: 14:33:47 INFO client #1 connected from 127.0.0.1:45422
Jun 22 14:33:47 pat rigplane[107665]: 14:33:47 INFO AuditRecord(timestamp='2026-06-22T21:33:47.129520+00:00', client_id=1, peername='127.0.0.1:45422', cmd='\\chk_vfo', long_cmd='chk_vfo', args=(), duration_ms=0.389, rprt=0, is_set=False, vfo=None)
Jun 22 14:33:47 pat rigplane[107665]: 14:33:47 INFO AuditRecord(timestamp='2026-06-22T21:33:47.131459+00:00', client_id=1, peername='127.0.0.1:45422', cmd='\\dump_state', long_cmd='dump_state', args=(), duration_ms=0.147, rprt=0, is_set=False, vfo=None)
Jun 22 14:33:47 pat rigplane[107665]: 14:33:47 INFO AuditRecord(timestamp='2026-06-22T21:33:47.132819+00:00', client_id=1, peername='127.0.0.1:45422', cmd='v', long_cmd='get_vfo', args=(), duration_ms=0.414, rprt=0, is_set=False, vfo=None)
Jun 22 14:33:47 pat rigplane[107665]: 14:33:47 INFO AuditRecord(timestamp='2026-06-22T21:33:47.133972+00:00', client_id=1, peername='127.0.0.1:45422', cmd='f', long_cmd='get_freq', args=(), duration_ms=0.504, rprt=0, is_set=False, vfo='VFOA')
Jun 22 14:33:47 pat rigplane[107665]: 14:33:47 ERROR Internal error executing set_vfo
Jun 22 14:33:47 pat rigplane[107665]: Traceback (most recent call last):
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/rigctld/handler.py", line 973, in execute
Jun 22 14:33:47 pat rigplane[107665]:     response = cast(RigctldResponse, await handler_fn(self, cmd))
Jun 22 14:33:47 pat rigplane[107665]:                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/rigctld/handler.py", line 1539, in _cmd_set_vfo
Jun 22 14:33:47 pat rigplane[107665]:     await self._command_service.execute(
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/core/command_service.py", line 147, in execute
Jun 22 14:33:47 pat rigplane[107665]:     executor_result = await self._executor.execute(intent)
Jun 22 14:33:47 pat rigplane[107665]:                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/rigctld/handler.py", line 362, in execute
Jun 22 14:33:47 pat rigplane[107665]:     error = await self.handler._execute_set_vfo(str(params["vfo"]))
Jun 22 14:33:47 pat rigplane[107665]:             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/rigctld/handler.py", line 1567, in _execute_set_vfo
Jun 22 14:33:47 pat rigplane[107665]:     await select_receiver(target)
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/runtime/_dual_rx_runtime.py", line 447, in select_receiver
Jun 22 14:33:47 pat rigplane[107665]:     await self._set_vfo_wire(target)
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/runtime/radio.py", line 3134, in _set_vfo_wire
Jun 22 14:33:47 pat rigplane[107665]:     raise CommandError(f"Radio rejected VFO select {vfo}")
Jun 22 14:33:47 pat rigplane[107665]: rigplane.core.exceptions.CommandError: Radio rejected VFO select SUB
Jun 22 14:33:47 pat rigplane[107665]: 14:33:47 INFO AuditRecord(timestamp='2026-06-22T21:33:47.218322+00:00', client_id=1, peername='127.0.0.1:45422', cmd='V', long_cmd='set_vfo', args=('VFOB',), duration_ms=83.849, rprt=<HamlibError.EINTERNAL: -7>, is_set=True, vfo=None)
Jun 22 14:33:47 pat rigplane[107665]: 14:33:47 INFO AuditRecord(timestamp='2026-06-22T21:33:47.220124+00:00', client_id=1, peername='127.0.0.1:45422', cmd='s', long_cmd='get_split_vfo', args=(), duration_ms=0.607, rprt=0, is_set=False, vfo='VFOA')
Jun 22 14:33:47 pat rigplane[107665]: 14:33:47 INFO AuditRecord(timestamp='2026-06-22T21:33:47.335803+00:00', client_id=1, peername='127.0.0.1:45422', cmd='V', long_cmd='set_vfo', args=('VFOA',), duration_ms=114.913, rprt=<HamlibError.OK: 0>, is_set=True, vfo=None)
Jun 22 14:33:47 pat rigplane[107665]: 14:33:47 INFO AuditRecord(timestamp='2026-06-22T21:33:47.337332+00:00', client_id=1, peername='127.0.0.1:45422', cmd='m', long_cmd='get_mode', args=(), duration_ms=0.812, rprt=0, is_set=False, vfo='VFOA')
Jun 22 14:33:47 pat rigplane[107665]: 14:33:47 ERROR Internal error executing set_vfo
Jun 22 14:33:47 pat rigplane[107665]: Traceback (most recent call last):
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/rigctld/handler.py", line 973, in execute
Jun 22 14:33:47 pat rigplane[107665]:     response = cast(RigctldResponse, await handler_fn(self, cmd))
Jun 22 14:33:47 pat rigplane[107665]:                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/rigctld/handler.py", line 1539, in _cmd_set_vfo
Jun 22 14:33:47 pat rigplane[107665]:     await self._command_service.execute(
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/core/command_service.py", line 147, in execute
Jun 22 14:33:47 pat rigplane[107665]:     executor_result = await self._executor.execute(intent)
Jun 22 14:33:47 pat rigplane[107665]:                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/rigctld/handler.py", line 362, in execute
Jun 22 14:33:47 pat rigplane[107665]:     error = await self.handler._execute_set_vfo(str(params["vfo"]))
Jun 22 14:33:47 pat rigplane[107665]:             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/rigctld/handler.py", line 1567, in _execute_set_vfo
Jun 22 14:33:47 pat rigplane[107665]:     await select_receiver(target)
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/runtime/_dual_rx_runtime.py", line 447, in select_receiver
Jun 22 14:33:47 pat rigplane[107665]:     await self._set_vfo_wire(target)
Jun 22 14:33:47 pat rigplane[107665]:   File "/srv/rigplane/.venv/lib/python3.11/site-packages/rigplane/runtime/radio.py", line 3134, in _set_vfo_wire
Jun 22 14:33:47 pat rigplane[107665]:     raise CommandError(f"Radio rejected VFO select {vfo}")
Jun 22 14:33:47 pat rigplane[107665]: rigplane.core.exceptions.CommandError: Radio rejected VFO select SUB
Jun 22 14:33:47 pat rigplane[107665]: 14:33:47 INFO AuditRecord(timestamp='2026-06-22T21:33:47.421407+00:00', client_id=1, peername='127.0.0.1:45422', cmd='V', long_cmd='set_vfo', args=('VFOB',), duration_ms=80.738, rprt=<HamlibError.EINTERNAL: -7>, is_set=True, vfo=None)
Jun 22 14:33:48 pat rigplane[107665]: 14:33:48 INFO radio-poller: scope controls fetched (receiver=0)

Analysis (filled during fix)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions