Web interface not working

Hi.
I used install script krakensdr_aarch64_install_doa.sh on Debian GNU/Linux 11 (bullseye) minimal.
DAQ Subsystem looks ok.
But web interface doesn’t work. I see black screen with buttons Configuration, Spectrum, DOA estimation only.
In console log of browser I see error:

ReferenceError: A nonexistent object was used in an `Input` of a Dash callback. The id of this object is `daq_cfg_files` and the property is `value`. The string ids in the current layout are: [url, header_config, header_spectrum, header_doa, settings-refresh-timer, placeholder_start, placeholder_stop, placeholder_save, placeholder_update_rx, placeholder_recofnig_daq, placeholder_update_daq_ini_params, placeholder_update_freq, placeholder_update_dsp, placeholder_config_page_upd, placeholder_spectrum_page_upd, placeholder_doa_page_upd, dummy_output, page-content, _none]
    di http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    pi http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    b http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    e http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    u http://10.42.0.11:8080/_dash-component-suites/dash_bootstrap_components/_components/dash_bootstrap_components.v1_1_0m1674118377.min.js:2
    _invoke http://10.42.0.11:8080/_dash-component-suites/dash_bootstrap_components/_components/dash_bootstrap_components.v1_1_0m1674118377.min.js:2
    w http://10.42.0.11:8080/_dash-component-suites/dash_bootstrap_components/_components/dash_bootstrap_components.v1_1_0m1674118377.min.js:2
    zo http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    a http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    promise callback*zo http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    a http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    Ko http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    Ko http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    fi http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    m http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    promise callback*window.dash_renderer</li/e/</b< http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    e http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    u http://10.42.0.11:8080/_dash-component-suites/dash_bootstrap_components/_components/dash_bootstrap_components.v1_1_0m1674118377.min.js:2
    _invoke http://10.42.0.11:8080/_dash-component-suites/dash_bootstrap_components/_components/dash_bootstrap_components.v1_1_0m1674118377.min.js:2
    w http://10.42.0.11:8080/_dash-component-suites/dash_bootstrap_components/_components/dash_bootstrap_components.v1_1_0m1674118377.min.js:2
    zo http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    a http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    promise callback*zo http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    a http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    Ko http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    Ko http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    li http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    fi http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    t http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    u http://10.42.0.11:8080/_dash-component-suites/dash_bootstrap_components/_components/dash_bootstrap_components.v1_1_0m1674118377.min.js:2
    _invoke http://10.42.0.11:8080/_dash-component-suites/dash_bootstrap_components/_components/dash_bootstrap_components.v1_1_0m1674118377.min.js:2
    w http://10.42.0.11:8080/_dash-component-suites/dash_bootstrap_components/_components/dash_bootstrap_components.v1_1_0m1674118377.min.js:2
    zo http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    a http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    Ko http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    Ko http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    ci http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    oe http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    dispatch http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    ti http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    ti http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    oe http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    Yu http://10.42.0.11:8080/_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js:20
    Bh http://10.42.0.11:8080/_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js:126
    Dj http://10.42.0.11:8080/_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js:162
    unstable_runWithPriority http://10.42.0.11:8080/_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js:25
    Da http://10.42.0.11:8080/_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js:60
    xb http://10.42.0.11:8080/_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js:162
    Bj http://10.42.0.11:8080/_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js:162
    U http://10.42.0.11:8080/_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js:16
    onmessage http://10.42.0.11:8080/_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js:24
    EventHandlerNonNull* http://10.42.0.11:8080/_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js:24
    <anonymous> http://10.42.0.11:8080/_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js:9
    <anonymous> http://10.42.0.11:8080/_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js:9
dash_renderer.v1_9_1m1617985068.min.js:20:70240

ul.log

/root/krakensdr_doa/krakensdr_doa/_signal_processing/krakenSDR_signal_processor.py:840: NumbaWarning:
Compilation is falling back to object mode WITH looplifting enabled because Function "channelize" failed type inference due to: Untyped global name 'shift_filter': Cannot determine Numba type of <class 'functools._lru_cache_wrapper'>

File "_signal_processing/krakenSDR_signal_processor.py", line 842:
def channelize(processed_signal, freq, decimation_factor, sampling_freq):
    system = shift_filter(decimation_factor, freq, sampling_freq, 1.1)  # Decimate with a BANDPASS filter
    ^

  @jit(fastmath=True, cache=True, parallel=True)
/root/miniforge3/envs/kraken/lib/python3.9/site-packages/numba/core/object_mode_passes.py:151: NumbaWarning: Function "channelize" was compiled in object mode without forceobj=True.

File "_signal_processing/krakenSDR_signal_processor.py", line 841:
@jit(fastmath=True, cache=True, parallel=True)
def channelize(processed_signal, freq, decimation_factor, sampling_freq):
^

  warnings.warn(errors.NumbaWarning(warn_msg,
/root/miniforge3/envs/kraken/lib/python3.9/site-packages/numba/core/object_mode_passes.py:161: NumbaDeprecationWarning:
Fall-back from the nopython compilation path to the object mode compilation path has been detected, this is deprecated behaviour.

For more information visit https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit

File "_signal_processing/krakenSDR_signal_processor.py", line 841:
@jit(fastmath=True, cache=True, parallel=True)
def channelize(processed_signal, freq, decimation_factor, sampling_freq):
^

  warnings.warn(errors.NumbaDeprecationWarning(msg,
/root/miniforge3/envs/kraken/lib/python3.9/site-packages/scipy/signal/_filter_design.py:1746: BadCoefficients: Badly conditioned filter coefficients (numerator): the results may be meaningless
  warnings.warn("Badly conditioned filter coefficients (numerator): the "
INFO:quart.serving:Running on http://0.0.0.0:8080 (CTRL + C to quit)
INFO:quart.serving:10.42.0.1:44170 GET / 1.1 200 670 78576
INFO:quart.serving:10.42.0.1:46302 GET /_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.8.7.min.js 1.1 200 34243 101406
INFO:quart.serving:10.42.0.1:46318 GET /_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js 1.1 200 4898 105399
INFO:quart.serving:10.42.0.1:46320 GET /_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js 1.1 200 38049 3934226
INFO:quart.serving:10.42.0.1:46326 GET /_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.7.2.min.js 1.1 200 832 3934950
INFO:quart.serving:10.42.0.1:46328 GET /_dash-component-suites/dash_bootstrap_components/_components/dash_bootstrap_components.v1_1_0m1674118377.min.js 1.1 200 59350 3934990
INFO:quart.serving:10.42.0.1:46302 GET /_dash-component-suites/dash_core_components/dash_core_components.v1_16_0m1617985098.min.js 1.1 200 120821 120718
INFO:quart.serving:10.42.0.1:46318 GET /_dash-component-suites/dash_core_components/dash_core_components-shared.v1_16_0m1617985098.js 1.1 200 9658 128635
INFO:quart.serving:10.42.0.1:46320 GET /_dash-component-suites/dash_html_components/dash_html_components.v1_1_3m1617985573.min.js 1.1 200 7488 135010
INFO:quart.serving:10.42.0.1:46326 GET /_dash-component-suites/dash_renderer/dash_renderer.v1_9_1m1617985068.min.js 1.1 200 53863 142576
INFO:quart.serving:10.42.0.1:44170 GET /assets/style.css 1.1 200 1309 4125581
INFO:quart.serving:10.42.0.1:46340 GET /_push 1.1 101 - 33951
INFO:quart.serving:10.42.0.1:46302 GET /assets/favicon.ico 1.1 200 27903 89648
INFO:quart.serving:10.42.0.1:46302 GET /assets/kraken_interface_bw.png 1.1 200 10001 60607
INFO:quart.serving:10.42.0.1:47148 GET /_dash-component-suites/dash_core_components/dash_core_components-shared.js.map 1.1 200 38987 8628669
INFO:quart.serving:10.42.0.1:47160 GET /_dash-component-suites/dash_html_components/dash_html_components.min.js.map 1.1 200 27366 8631447
INFO:quart.serving:10.42.0.1:47134 GET /_dash-component-suites/dash_core_components/dash_core_components.min.js.map 1.1 200 280459 8643858
INFO:quart.serving:10.42.0.1:54262 GET / 1.1 200 670 23180
INFO:quart.serving:10.42.0.1:56040 GET /_push 1.1 101 - 71124
ERROR:quart.serving:Error in ASGI Framework
Traceback (most recent call last):
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/hypercorn/asyncio/task_group.py", line 23, in _handle
    await app(scope, receive, send, sync_spawn, call_soon)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/hypercorn/app_wrappers.py", line 33, in __call__
    await self.app(scope, receive, send)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/app.py", line 1741, in __call__
    await self.asgi_app(scope, receive, send)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/app.py", line 1767, in asgi_app
    await asgi_handler(receive, send)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/asgi.py", line 51, in __call__
    _raise_exceptions(done)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/asgi.py", line 353, in _raise_exceptions
    raise task.exception()
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/asgi.py", line 102, in handle_request
    await asyncio.wait_for(self._send_response(send, response), timeout=timeout)
  File "/root/miniforge3/envs/kraken/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
    return fut.result()
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/asgi.py", line 131, in _send_response
    async for data in response_body:
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/wrappers/response.py", line 103, in _aiter
    for data in iterable:  # type: ignore
TypeError: 'NoneType' object is not iterable
INFO:quart.serving:10.42.0.1:56044 GET /_dash-component-suites/dash_core_components/dash_core_components.min.js.map 1.1 500 - 137463
ERROR:quart.serving:Error in ASGI Framework
Traceback (most recent call last):
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/hypercorn/asyncio/task_group.py", line 23, in _handle
    await app(scope, receive, send, sync_spawn, call_soon)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/hypercorn/app_wrappers.py", line 33, in __call__
    await self.app(scope, receive, send)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/app.py", line 1741, in __call__
    await self.asgi_app(scope, receive, send)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/app.py", line 1767, in asgi_app
    await asgi_handler(receive, send)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/asgi.py", line 51, in __call__
    _raise_exceptions(done)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/asgi.py", line 353, in _raise_exceptions
    raise task.exception()
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/asgi.py", line 102, in handle_request
    await asyncio.wait_for(self._send_response(send, response), timeout=timeout)
  File "/root/miniforge3/envs/kraken/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
    return fut.result()
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/asgi.py", line 131, in _send_response
    async for data in response_body:
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/wrappers/response.py", line 103, in _aiter
    for data in iterable:  # type: ignore
TypeError: 'NoneType' object is not iterable
INFO:quart.serving:10.42.0.1:56058 GET /_dash-component-suites/dash_core_components/dash_core_components-shared.js.map 1.1 500 - 146420
ERROR:quart.serving:Error in ASGI Framework
Traceback (most recent call last):
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/hypercorn/asyncio/task_group.py", line 23, in _handle
    await app(scope, receive, send, sync_spawn, call_soon)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/hypercorn/app_wrappers.py", line 33, in __call__
    await self.app(scope, receive, send)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/app.py", line 1741, in __call__
    await self.asgi_app(scope, receive, send)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/app.py", line 1767, in asgi_app
    await asgi_handler(receive, send)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/asgi.py", line 51, in __call__
    _raise_exceptions(done)
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/asgi.py", line 353, in _raise_exceptions
    raise task.exception()
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/asgi.py", line 102, in handle_request
    await asyncio.wait_for(self._send_response(send, response), timeout=timeout)
  File "/root/miniforge3/envs/kraken/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
    return fut.result()
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/asgi.py", line 131, in _send_response
    async for data in response_body:
  File "/root/miniforge3/envs/kraken/lib/python3.9/site-packages/quart/wrappers/response.py", line 103, in _aiter
    for data in iterable:  # type: ignore
TypeError: 'NoneType' object is not iterable
INFO:quart.serving:10.42.0.1:56070 GET /_dash-component-suites/dash_html_components/dash_html_components.min.js.map 1.1 500 - 159760
INFO:quart.serving:10.42.0.1:35196 GET / 1.1 200 670 24109
INFO:quart.serving:10.42.0.1:35196 GET /_dash-component-suites/dash_renderer/[email protected]_9_1m1617985068.14.0.min.js 1.1 200 38049 34971
INFO:quart.serving:10.42.0.1:35206 GET /_dash-component-suites/dash_core_components/dash_core_components.v1_16_0m1617985098.min.js 1.1 200 120821 8337593
INFO:quart.serving:10.42.0.1:35228 GET /_dash-component-suites/dash_core_components/dash_core_components-shared.js.map 1.1 200 38987 8340329
INFO:quart.serving:10.42.0.1:35232 GET /_dash-component-suites/dash_html_components/dash_html_components.min.js.map 1.1 200 27366 8342233
INFO:quart.serving:10.42.0.1:35248 GET /_push 1.1 101 - 8363804
INFO:quart.serving:10.42.0.1:35216 GET /_dash-component-suites/dash_core_components/dash_core_components.min.js.map 1.1 200 280459 8373362

Do you have any ideas how to fix it?
Thank you.

The error in ui.log was fixed. Is it correct?

--- krakenSDR_signal_processor.py.orig  2023-01-19 12:31:30.866596404 +0200
+++ krakenSDR_signal_processor.py       2023-01-19 12:13:47.198662521 +0200
@@ -837,7 +837,7 @@ def shift_filter(decimation_factor, freq
 
 # This function takes the full data, and efficiently returns only a filtered and decimated requested channel
 # Efficient method: Create BANDPASS Filter for frequency of interest, decimate with that bandpass filter, then do the final shift
[email protected](fastmath=True, cache=True, parallel=True)
[email protected](fastmath=True, cache=True, parallel=True, forceobj=True)
 def channelize(processed_signal, freq, decimation_factor, sampling_freq):
     system = shift_filter(decimation_factor, freq, sampling_freq, 1.1)  # Decimate with a BANDPASS filter
     decimated = signal.decimate(processed_signal, decimation_factor, ftype=system)

But it didn’t help with the web interface.

What system are you on, and is it a fresh OS install? The buttons showing up and nothing else usually indicates a conflict with the Dash library versions. The script should force the correct versions to be installed though.

The second ui.log looks OK, what changed in between?

What system are you on,

Bullseye Minimal CLI downloaded from Orange Pi 4 and LTS – Armbian

is it a fresh OS install?

Yes.

The script should force the correct versions to be installed though

Yes, but it seems that not all versions are locked.

The second ui.log looks OK, what changed in between?

Look to the diff of krakenSDR_signal_processor.py

[email protected](fastmath=True, cache=True, parallel=True)
[email protected](fastmath=True, cache=True, parallel=True, forceobj=True)

Testing this Armbian Jammy on OPI4 now. The installation succeeds normally.

However, something is wrong. I am able to load the UI once during startup, but after startup all CPU cores go to 100%, and the UI becomes unresponsive, hence it no longer loads on a refresh.

Will look into this problem further.

Found the issue. This issue will affect all new installs with the script.

The problem is that scipy changed the way that the decimate function works in their latest update and they seem to have introduced a bug. Reverting from 1.10.0 to 1.9.3 fixes it.

I’ll confirm everything and pin the scripts soon, but if you want to fix it immediately:

conda activate kraken
conda install scipy==1.9.3

Scripts updated and tested. Appears to be working well again.

2 Likes