Skip to content

addDevice returns Error: 404 - Add device link failed org.signal.network.exceptions.NonSuccessfulResponseCodeException #2107

Description

@tsalsa919

The signal-cli is being used a primary device. After that when trying to add another deskto device. In this case Signal Desktop 8.23.0 ⁨production⁩ (Apple silicon)

QR_CODE_FROM_SIGNAL_DESKTOP is the value I obtain from the Desktop App and it starts with sgnl:// It was URL encoded. So I have tried addDevice with both encoded and non encoded version.

signal-cli -a <phonenumber> addDevice --uri <QR_CODE_FROM_SIGNAL_DESKTOP>

And I just get Error: 404 - Add device link failed org.signal.network.exceptions.NonSuccessfulResponseCodeException

Did signal change server? Or is this function currently not working in signal-cli ?

Below are the errors when ran with -v options.

Error log:
2026-08-19T16:41:54.036+0200 [main] DEBUG org.asamk.signal.util.IOUtils - XDG_RUNTIME_DIR not set, falling back to temp dir 2026-08-19T16:41:54.037+0200 [main] DEBUG org.asamk.signal.App - Starting signal-cli 0.14.7 2026-08-19T16:41:54.284+0200 [main] DEBUG org.asamk.signal.util.IOUtils - XDG_DATA_HOME not set, falling back to home dir 2026-08-19T16:41:54.292+0200 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... 2026-08-19T16:41:54.363+0200 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.sqlite.jdbc4.JDBC4Connection@50380ce7 2026-08-19T16:41:54.364+0200 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. 2026-08-19T16:41:54.385+0200 [main] INFO LibSignalService - [LibSignalChatConnection]: [normal:1108951836] Connecting... 2026-08-19T16:41:54.388+0200 [main] INFO LibSignalService - [LibSignalChatConnection]: [sendRequest] Enqueuing request send for after connection 2026-08-19T16:41:54.779+0200 [System-3] INFO LibSignalService - [LibSignalChatConnection]: [normal:1108951836] Connected 2026-08-19T16:41:54.780+0200 [System-6] INFO LibSignalService - [LibSignalChatConnection]: [normal:1108951836] queue empty 2026-08-19T16:41:55.196+0200 [main] DEBUG o.a.s.manager.internal.JobExecutor - Running RefreshRecipientsJob job 2026-08-19T16:41:55.197+0200 [virtual-55] DEBUG o.a.s.manager.helper.RecipientHelper - No new numbers to query. 2026-08-19T16:41:55.197+0200 [virtual-55] DEBUG o.a.s.m.s.recipients.RecipientStore - Marking 0 numbers as undiscoverable 2026-08-19T16:41:55.197+0200 [virtual-55] DEBUG o.a.s.m.s.recipients.RecipientStore - Marking 0 numbers as discoverable 2026-08-19T16:41:55.615+0200 [main] ERROR o.a.signal.commands.AddDeviceCommand - Add device link failed: [404] 2026-08-19T16:41:55.615+0200 [main] INFO LibSignalService - [LibSignalChatConnection]: [normal:1108951836] Disconnecting... 2026-08-19T16:41:55.616+0200 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... 2026-08-19T16:41:55.616+0200 [System-14] INFO LibSignalService - [LibSignalChatConnection]: [normal:1108951836] disconnected 2026-08-19T16:41:55.616+0200 [System-14] INFO LibSignalService - [LibSignalChatConnection]: [normal:1108951836] [cleanup] 2026-08-19T16:41:55.617+0200 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. Add device link failed org.signal.network.exceptions.NonSuccessfulResponseCodeException: [404] at org.signal.network.NetworkResult$WebSocketResponseConverter.toStatusCodeError(NetworkResult.kt:438) at org.signal.network.NetworkResult$DefaultWebSocketConverter.toStatusCodeError(NetworkResult.kt:450) at org.signal.network.NetworkResult$DefaultWebSocketConverter.convert(NetworkResult.kt:453) at org.signal.network.NetworkResult$Companion$fromWebSocket$result$1.apply-IoAF18A(NetworkResult.kt:83) at org.signal.network.NetworkResult$Companion$fromWebSocket$result$1.apply(NetworkResult.kt:83) at io.reactivex.rxjava3.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:58) at io.reactivex.rxjava3.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:81) at io.reactivex.rxjava3.core.Scheduler$DisposeTask.run(Scheduler.java:644) at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:80) at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:71) at java.base@25.0.4/java.util.concurrent.FutureTask.run(FutureTask.java:328) at java.base@25.0.4/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:309) at java.base@25.0.4/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090) at java.base@25.0.4/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) at java.base@25.0.4/java.lang.Thread.run(Thread.java:1474)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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