Skip to content

Setup skips hashtable rebuild with "AppLoad works without it" — but on OS 3.27.3.0 AppLoad crash-loops xochitl without it #2

Description

@vnnkl

Environment

  • remagic v0.2.0 (installed 2026-07-07 via get.sh)
  • reMarkable Paper Pro (Ferrari), OS 3.27.3.0
  • macOS host, USB connection

Summary

remagic setup completes "successfully", but AppLoad never appears on the tablet. The setup step that rebuilds the Qt resource hashtable fails non-interactively and prints:

==> rebuilding the Qt resource hashtable (best-effort)
  ! couldn't rebuild non-interactively — AppLoad works without it

On OS 3.27.3.0 that reassurance is wrong: without the hashtab, AppLoad's hooks panic inside xochitl on every xovi start. systemd restarts xochitl 3 times, gives up, and the device reboots — which wipes xovi's tmpfs unit overrides, so it comes back up on stock. The net effect is a silent crash-reboot loop: every triple-press (or xovi/start) just restarts the tablet and AppLoad never shows up, with no error visible to the user.

Evidence

journalctl -u xochitl from the boot where xovi was started:

xochitl[1072]: [qmldiff]: Set system version to 3.27.3.0
xochitl[1072]: [qmldiff]: Failed to load hashtab: No such file or directory (os error 2)
xochitl[1072]: thread '<unnamed>' (1072) panicked at src/util/common_util.rs:121:60:
xochitl[1072]: called `Result::unwrap()` on an `Err` value: Couldn't resolve the hashed identifier 17477757197668945522 required by AppLoad hooks in main UI
systemd[1]: xochitl.service: Main process exited, code=dumped, status=6/ABRT
systemd[1]: xochitl.service: Scheduled restart job, restart counter is at 1.
[... identical panic ×3 ...]
systemd[1]: xochitl.service: Start request repeated too quickly.
systemd[1]: Failed to start reMarkable main application.

followed by a device reboot. remagic doctor reports everything green (✓ xovi installed, ✓ AppLoad installed), which makes the failure hard to diagnose — installed ≠ loadable.

Workaround that fixed it

The rebuild is fully automatable — the only interactive part of xovi's rebuild_hashtable script is a read -rp "press enter" prompt. Running its core logic over SSH worked first try:

export XOVI_ROOT=/tmp/xovi-hashtab-build   # contains ONLY qt-resource-rebuilder.so
systemctl stop xochitl
mkdir -p "$XOVI_ROOT/extensions.d" /home/root/xovi/exthome/qt-resource-rebuilder
ln -s /home/root/xovi/extensions.d/qt-resource-rebuilder.so "$XOVI_ROOT/extensions.d/"

QMLDIFF_HASHTAB_CREATE=/home/root/xovi/exthome/qt-resource-rebuilder/hashtab \
QML_DISABLE_DISK_CACHE=1 \
LD_PRELOAD=/home/root/xovi/xovi.so \
/usr/bin/xochitl &
# poll output for "[qmldiff]: Hashtab saved to ...", then kill xochitl

After that, /home/root/xovi/start succeeds:

xochitl[1173]: [qmldiff]: Hashtab loaded! Cached 20066 entries
xochitl[1173]: [qmldiff]: Loaded external AppLoad hooks in main UI

and AppLoad appears in the sidebar as expected.

Suggestions

  1. Run the hashtable rebuild non-interactively during setup (as above) instead of treating it as best-effort — no user interaction is actually required.
  2. If the rebuild still fails, don't print "AppLoad works without it" — on 3.27.3.0 it hard-crashes the UI. Warn that AppLoad will not load and point to remagic doctor / a rebuild command.
  3. Have remagic doctor check for the hashtab (and/or whether xovi.so is actually mapped into the running xochitl), so "installed but crash-looping" isn't reported as all-green.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions