Skip to content

TypeError when attempting to install OS update. #153

@Cienaxle

Description

@Cienaxle

I am running into trouble when trying to run 'codexctl install' on my reMarkable RM100.

./codexctl install updates/3.3.2.1666_reMarkable-Ak1sdSSGWD-.signed

Would you like to use a password to connect? (Y/n): 
Enter RM SSH password: **********
Success: Connected to device
Failed to get the version number from the filename, please enter it: 3.3.2.1666
Starting fake updater at 10.11.99.6:8085
Checking if device can connect to this machine
Starting update service on device
Updating...
requested:  2.5.0.27
platform:  reMarkable
----------------------------------------
Exception occurred during processing of request from ('10.11.99.1', 43672)
Traceback (most recent call last):
  File "/tmp/onefile_9755_1763390312_587915/socketserver.py", line 318, in _handle_request_noblock
  File "/tmp/onefile_9755_1763390312_587915/socketserver.py", line 349, in process_request
  File "/tmp/onefile_9755_1763390312_587915/socketserver.py", line 362, in finish_request
  File "/tmp/onefile_9755_1763390312_587915/http/server.py", line 672, in __init__
  File "/tmp/onefile_9755_1763390312_587915/socketserver.py", line 766, in __init__
  File "/tmp/onefile_9755_1763390312_587915/http/server.py", line 436, in handle
  File "/tmp/onefile_9755_1763390312_587915/http/server.py", line 424, in handle_one_request
  File "/tmp/onefile_9755_1763390312_587915/codexctl/server.py", line 112, in do_POST
TypeError: string indices must be integers, not 'str'
----------------------------------------
Updating...
requested:  2.5.0.27
platform:  reMarkable
----------------------------------------
Exception occurred during processing of request from ('10.11.99.1', 43674)
Traceback (most recent call last):
  File "/tmp/onefile_9755_1763390312_587915/socketserver.py", line 318, in _handle_request_noblock
  File "/tmp/onefile_9755_1763390312_587915/socketserver.py", line 349, in process_request
  File "/tmp/onefile_9755_1763390312_587915/socketserver.py", line 362, in finish_request
  File "/tmp/onefile_9755_1763390312_587915/http/server.py", line 672, in __init__
  File "/tmp/onefile_9755_1763390312_587915/socketserver.py", line 766, in __init__
  File "/tmp/onefile_9755_1763390312_587915/http/server.py", line 436, in handle
  File "/tmp/onefile_9755_1763390312_587915/http/server.py", line 424, in handle_one_request
  File "/tmp/onefile_9755_1763390312_587915/codexctl/server.py", line 112, in do_POST
TypeError: string indices must be integers, not 'str'
----------------------------------------
Updating...
I1117 14:38:55.801147   406 update_engine_client.cc:271] Initiating update check and install.
W1117 14:38:55.818012   406 update_engine_client.cc:64] Error getting dbus proxy for no.remarkable.update1: GError(3): Could not get owner of name 'no.remarkable.update1': no such name
I1117 14:38:55.818154   406 update_engine_client.cc:54] Retrying to get dbus proxy. Try 2/4
I1117 14:39:05.849915   406 update_engine_client.cc:276] Waiting for update to complete.
E1117 14:39:20.964996   406 update_engine_client.cc:207] Update failed.

Traceback (most recent call last):
  File "/tmp/onefile_9755_1763390312_587915/main.py", line 13, in <module>
  File "/tmp/onefile_9755_1763390312_587915/codexctl/__init__.py", line 523, in main
  File "/tmp/onefile_9755_1763390312_587915/codexctl/__init__.py", line 323, in call_func
  File "/tmp/onefile_9755_1763390312_587915/codexctl/device.py", line 661, in install_ohma_update
SystemError: There was an error updating :(

The "TypeError' makes me think that it might be my fault. In response to "Failed to get version number from the filename..." I entered the full version number 3.3.2.1666. Could it be that python is interpreting this as a str? Should I be entering version 3.3, or perhaps the version ID instead of version number?

The file ~/.config/codexctl/version-ids.json exists and shows an entry for version 3.3.2.1666.

status:

Current version: 2.5.0.27
Old update engine: True
Beta active: Release
Version id: 20201127104105

Firmware downloaded using:
codexctl download 3.3.2.1666 --hardware rm1 --out .

codexctl is the 2025-11-08 binary compiled for Ubuntu.

I acquired this device used, from a thrift store. I used 'journalctl -a' first thing to grab as much of the history of the device as I could. It appears from this output that the previous owner attempted to update to firmware 3.11.2.5, but that this attempt failed. It seems that it was updated, then shut down without rebooting into 3.11.2.5 until finally it was donated to the thrift store months later. When I powered it up it booted into 2.5.0.27. The 3.11 firmware may still be sitting on the fallback partition. Possibly the device was left in an unstable state. I perfromed a factory reset prior to using codexctl.

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