Linking of iPad as secondary device currently seems not to be working on beta 25
Setup
- Device: Xperia X, F5122
- SailfishOS version: 4.5.0.25
- Whisperfish version: v0.6.0-beta.25
- Whisperfish is primary device, registration pre-existed beta.25
Summary
On attempting to link Signal on iPadOS, the linking fails. After having trouble linking with the iPad, I attempted linking with Signal Desktop on linux and that worked perfectly.
As soon as the QR code is scanned in whisperfish, the iPad immediately shows an error. Being an apple device the error is rather non verbose. It states simply "Failed to Link Your Device. An unknown error occurred." And there is a button for retry. I am unsure how to get further information from the iPad.
I have managed to link Signal desktop on linux with the current release of whisperfish.
I have attached logs showing 3 attempts to link the iPad as a secondary device. Though, from watching the terminal as I did this, it appeared Signal may have blocked attempt 2 and 3 on the basis of some sort of rate limiter. I don't believe attempt 1 suffered this same result though. It failed for an unknown reason?
Please let me know if I can assist with further data collection.
Trace log
[defaultuser@Justin-sailfish ~]$ harbour-whisperfish -v
2024-04-02T10:00:36.032852Z DEBUG qt_log: whisperfish::qtlog: Using Wayland-EGL
2024-04-02T10:00:36.287523Z INFO whisperfish::gui: QmlApp::application loaded - version v0.6.0-beta.25
2024-04-02T10:00:36.295671Z WARN qt_log: whisperfish::qtlog: src/sailfishapp.rs:211:int __cpp_closure_censored_possible_phone_no09294_impl(QmlApplicationHolder* const&)(): Failed to load translator for ("en-GB") Searched "/usr/share/harbour-whisperfish/translations" for "harbour-whisperfish"
2024-04-02T10:00:37.413409Z WARN qt_log: whisperfish::qtlog: "Failed to attach key memory region for qtcontacts-sqlite-np: QSharedMemory::attach (shmget): doesn't exist"
2024-04-02T10:00:37.413648Z WARN qt_log: whisperfish::qtlog: "Failed to open contacts transient store"
2024-04-02T10:00:37.414430Z WARN qt_log: whisperfish::qtlog: "Unable to open synchronous engine database connection"
2024-04-02T10:00:37.414789Z WARN qt_log: whisperfish::qtlog: QSqlQuery::prepare: database not open
2024-04-02T10:00:37.415088Z WARN qt_log: whisperfish::qtlog: "Failed to prepare distinct display label group selection query: \n SELECT DISTINCT DisplayLabelGroup FROM DisplayLabels ORDER BY DisplayLabelGroupSortOrder ASC"
2024-04-02T10:00:37.619198Z INFO run: whisperfish::worker::setup: identity_key found, assuming registered
2024-04-02T10:00:37.619368Z INFO run: whisperfish::config::settings: Setting default settings.
2024-04-02T10:00:38.057017Z DEBUG qt_log: whisperfish::qtlog: Starting favorites query at 743 ms
2024-04-02T10:00:38.196456Z DEBUG qt_log: whisperfish::qtlog: Favorites queried in 882 ms
2024-04-02T10:00:38.354538Z DEBUG qt_log: whisperfish::qtlog: Starting metadata query at 1040 ms
2024-04-02T10:00:38.366898Z DEBUG qt_log: whisperfish::qtlog: All queried in 1052 ms
2024-04-02T10:00:46.952497Z TRACE run:open{db_path=Path("/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish")}: whisperfish_store::store::utils: Opening file (async) /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/salt
2024-04-02T10:00:46.954830Z TRACE run:open{db_path=Path("/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish")}: whisperfish_store::store::utils: Read file /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/salt with 8 bytes
2024-04-02T10:00:46.955339Z TRACE run:open{db_path=Path("/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish")}: whisperfish_store::store::utils: Opening file (async) /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/db/salt
2024-04-02T10:00:46.957282Z TRACE run:open{db_path=Path("/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish")}: whisperfish_store::store::utils: Read file /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/db/salt with 8 bytes
2024-04-02T10:00:46.965393Z TRACE whisperfish_store::store::encryption: Computed the storage key, salt was [79, 215, 27, 104, 90, 160, 140, 35]
2024-04-02T10:00:48.013839Z TRACE whisperfish_store::store::encryption: Computed the database key, salt was [135, 28, 150, 144, 6, 128, 24, 226]
2024-04-02T10:00:48.070329Z TRACE whisperfish::actor::session: SessionActor has a registered storage
2024-04-02T10:00:48.070510Z TRACE whisperfish::actor::message: MessageActor has a registered storage
2024-04-02T10:00:48.077579Z TRACE mark_pending_messages_failed: whisperfish_store::store: Set no messages to failed
2024-04-02T10:00:48.079045Z INFO reading password and signaling key: whisperfish::worker::client: phonenumber: +censored_possible_phone_no, ACI: Some(censored-uuid-uuid-uuid-12characters), PNI: Some(censored-uuid-uuid-uuid-12characters), DeviceId: 1
2024-04-02T10:00:48.080428Z TRACE reading password and signaling key:signal_password:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/http_password"}: whisperfish_store::store::utils: Opening file (async) /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/http_password
2024-04-02T10:00:48.082545Z TRACE reading password and signaling key:signal_password:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/http_password"}: whisperfish_store::store::utils: Read file /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/http_password with 80 bytes
2024-04-02T10:00:48.086866Z TRACE reading password and signaling key:signaling_key:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/http_signaling_key"}: whisperfish_store::store::utils: Opening file (async) /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/http_signaling_key
2024-04-02T10:00:48.088473Z TRACE reading password and signaling key:signaling_key:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/http_signaling_key"}: whisperfish_store::store::utils: Read file /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/http_signaling_key with 112 bytes
2024-04-02T10:00:48.110593Z WARN whisperfish::worker::client::migrations::pni: Not connected to server, cannot initialize PNI. Retrying in 10 seconds.
2024-04-02T10:00:48.144627Z TRACE whoami: whisperfish::worker::client::migrations::whoami: ACI (censored-uuid-uuid-uuid-12characters) and PNI (censored-uuid-uuid-uuid-12characters) already set.
2024-04-02T10:00:48.145059Z TRACE session_to_db: whisperfish_store::store::migrations::session_to_db: calling migrate_identities
2024-04-02T10:00:48.203019Z TRACE set up message receiver:connectable: whisperfish::worker::client::migrations: connectable whoami=false protocol_store_in_db=false gv2_expected_ids=false self_profile_ready=false
2024-04-02T10:00:48.758971Z DEBUG run:qt_log: whisperfish::qtlog: qml/pages/MainPage.qml:41:onCompleted(): Age 2
2024-04-02T10:00:48.863534Z TRACE set up message receiver:connectable: whisperfish::worker::client::migrations: connectable whoami=true protocol_store_in_db=true gv2_expected_ids=true self_profile_ready=false
2024-04-02T10:00:48.863742Z TRACE set up message receiver:connectable: whisperfish::worker::client::migrations: connectable whoami=true protocol_store_in_db=true gv2_expected_ids=true self_profile_ready=false
2024-04-02T10:00:48.868036Z TRACE get_identity_key_pair: whisperfish_store::store::protocol_store: reading own identity key pair at /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/identity_key
2024-04-02T10:00:48.868225Z TRACE get_identity_key_pair:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/identity_key"}: whisperfish_store::store::utils: Opening file (async) /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/identity_key
2024-04-02T10:00:48.869487Z TRACE get_identity_key_pair: whisperfish_store::store::protocol_store: reading own identity key pair at /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/identity_key
2024-04-02T10:00:48.869642Z TRACE get_identity_key_pair:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/identity_key"}: whisperfish_store::store::utils: Opening file (async) /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/identity_key
2024-04-02T10:00:48.873127Z TRACE get_identity_key_pair:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/identity_key"}: whisperfish_store::store::utils: Read file /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/identity_key with 128 bytes
2024-04-02T10:00:48.910583Z DEBUG qt_log: whisperfish::qtlog: qml/components/Emojify.qml:91:onCompleted(): [Emojify] global implementation could not be loaded
2024-04-02T10:00:48.912082Z DEBUG qt_log: whisperfish::qtlog: [Emojify] trace: [
{
"lineNumber": 1,
"columnNumber": 38,
"fileName": "qml/components/EmojiImplementationProxy",
"message": "Script file:///usr/share/maliit/plugins/com/jolla/ichthyo_color_emojis/patch_ichthyo_emoji.js unavailable"
},
{
"lineNumber": -1,
"columnNumber": -1,
"fileName": "file:///usr/share/maliit/plugins/com/jolla/ichthyo_color_emojis/patch_ichthyo_emoji.js",
"message": "File not found"
}
]
2024-04-02T10:00:48.953150Z DEBUG qt_log: whisperfish::qtlog: qml/components/Emojify.qml:103:onCompleted(): [Emojify] internal implementation loaded
2024-04-02T10:00:49.086127Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:49.094944Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:49.106772Z ERROR set_app:qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:49.124439Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:49.137682Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:49.142378Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:49.161761Z ERROR set_app:qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:49.167744Z ERROR set_app:qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:49.177125Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:49.239489Z TRACE get_identity_key_pair:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/identity_key"}: whisperfish_store::store::utils: Read file /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/identity_key with 128 bytes
2024-04-02T10:00:49.823015Z INFO handle_profile_fetched{recipient_uuid=censored-uuid-uuid-uuid-12characters profile="SignalServiceProfile { identity_key: Some(\"...\"), name: Some(\"...\"), about: Some(\"...\"), about_emoji: Some(\"...\"), avatar: None, unidentified_access: Some(\"...\"), unrestricted_unidentified_access: false, capabilities: DeviceCapabilities { storage: false, sender_key: false, announcement_group: false, change_number: false, stories: false, gift_badges: true, pni: true, payment_activation: true } }"}: whisperfish::worker::client::profile: Decrypted profile Profile { name: Some(ProfileName { given_name: "Justin", family_name: Some("Egan") }), about: Some(""), about_emoji: Some(""), avatar: None }
2024-04-02T10:00:49.823284Z INFO refresh own profile: whisperfish::worker::client::profile_upload: Considering our profile as outdated, uploading new one.
2024-04-02T10:00:49.834179Z TRACE whisperfish::worker::client::profile: Profile has no avatar to remove.
2024-04-02T10:00:49.851078Z TRACE save_profile{profile=StoreProfile { given_name: Some("Justin"), family_name: Some("Egan"), joined_name: Some("Justin Egan"), about_text: Some(""), emoji: Some(""), avatar: None, unidentified: Enabled, last_fetch: 2024-04-02T10:00:49.censored_possible_phone_no, r_uuid: censored-uuid-uuid-uuid-12characters, r_id: 1, r_key: Some([38, 221, 193, 160, 251, 27, 91, 107, 118, 60, 181, 70, 234, 75, 5, 169, 254, 189, 138, 168, 56, 163, 235, 69, 15, 185, 4, 131, 170, 241, 74, 110]) }}: whisperfish_store::store: Profile saved to database
2024-04-02T10:00:49.851685Z INFO whisperfish::worker::client::profile: Profile for censored-uuid-uuid-uuid-12characters saved!
2024-04-02T10:00:49.952301Z TRACE RefreshPreKeys:update_pre_key_bundle{service_id_type=AccountIdentity use_last_resort_key=true force=false}: libsignal_service::account_manager: Remaining pre-keys on server: PreKeyStatus { count: 99, pq_count: 99 }
2024-04-02T10:00:49.952525Z DEBUG RefreshPreKeys:update_pre_key_bundle{service_id_type=AccountIdentity use_last_resort_key=true force=false}: libsignal_service::account_manager: Available keys sufficient
2024-04-02T10:00:50.766145Z TRACE upload profile:update_profile_key{uuid=Some(censored-uuid-uuid-uuid-12characters) pni=None trust_level=Certain}: whisperfish_store::store: Profile key up-to-date
2024-04-02T10:00:50.786968Z TRACE refresh profile attributes:get_local_registration_id:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/regid"}: whisperfish_store::store::utils: Opening file (async) /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/regid
2024-04-02T10:00:50.795880Z TRACE refresh profile attributes:get_local_registration_id:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/regid"}: whisperfish_store::store::utils: Read file /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/regid with 64 bytes
2024-04-02T10:00:50.799439Z TRACE refresh profile attributes:get_local_registration_id:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/pni_regid"}: whisperfish_store::store::utils: Opening file (async) /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/pni_regid
2024-04-02T10:00:50.801927Z TRACE refresh profile attributes:get_local_registration_id:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/pni_regid"}: whisperfish_store::store::utils: Read file /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/pni_regid with 64 bytes
2024-04-02T10:00:51.736704Z INFO refresh profile attributes: whisperfish::worker::client::profile_upload: profile attributes refreshed
2024-04-02T10:00:51.742810Z TRACE set up message receiver:connectable: whisperfish::worker::client::migrations: connectable whoami=true protocol_store_in_db=true gv2_expected_ids=true self_profile_ready=true
2024-04-02T10:00:51.759328Z TRACE set up message receiver:websocket: libsignal_service_hyper::websocket: Will start websocket at Url { scheme: "wss", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("chat.signal.org")), port: None, path: "/v1/websocket/", query: Some("login=censored-uuid-uuid-uuid-12characters&password=censored_pass"), fragment: None }
2024-04-02T10:00:52.774760Z DEBUG set up message receiver:websocket: libsignal_service_hyper::websocket: WebSocket connected: Response { status: 101, version: HTTP/1.1, headers: {"date": "Tue, 02 Apr 2024 10:00:51 GMT", "vary": "Origin", "upgrade": "websocket", "connection": "Upgrade", "sec-websocket-accept": "qgirHByy0HixOugFpAXc4HpF4oI="}, body: None }
2024-04-02T10:00:52.781245Z TRACE libsignal_service_hyper::websocket: Triggering keep-alive
2024-04-02T10:00:52.790784Z TRACE outdated profile stream: whisperfish::worker::profile_refresh: Yielding out-of-date profile censored-uuid-uuid-uuid-12characters
2024-04-02T10:00:52.792381Z TRACE whisperfish::worker::client::profile: Received OutdatedProfile(censored-uuid-uuid-uuid-12characters, [..]), fetching.
2024-04-02T10:00:52.797994Z TRACE set up message receiver:websocket: libsignal_service::websocket: decoded WebSocketMessage request { r#type: Request, verb: Some("PUT"), path: Some("/api/v1/message"), body: 511 bytes, headers: ["X-Signal-Key: false", "X-Signal-Timestamp:censored_possible_phone_no"],: censored_
2024-04-02T10:00:52.798296Z TRACE set up message receiver:websocket: libsignal_service::websocket: sending request with body
2024-04-02T10:00:52.798476Z TRACE set up message receiver:websocket: libsignal_service::websocket: sending WebSocketRequestMessage { verb: Some("GET"), path: Some("/v1/profile/censored-uuid-uuid-uuid-12characters/b888d10acb388f12d8b06f087c5200c9cef2aeb15d34346a667421ddade9ad8b"), body (bytes): None, headers: [],: censored_
2024-04-02T10:00:52.799011Z TRACE set up message receiver:websocket: libsignal_service::websocket: decoded WebSocketMessage request { r#type: Request, verb: Some("PUT"), path: Some("/api/v1/message"), body: 671 bytes, headers: ["X-Signal-Key: false", "X-Signal-Timestamp:censored_possible_phone_no"],: censored_
2024-04-02T10:00:52.799207Z TRACE set up message receiver:websocket: libsignal_service::websocket: sending request with body
2024-04-02T10:00:52.801859Z TRACE message receiver:decrypt{is_signaling_key_encrypted=false input_size=511}: libsignal_service::envelope: Envelope::decrypt: not encrypted
2024-04-02T10:00:52.802328Z TRACE message receiver:decrypt{is_signaling_key_encrypted=false input_size=671}: libsignal_service::envelope: Envelope::decrypt: not encrypted
2024-04-02T10:00:52.803130Z TRACE set up message receiver:websocket: libsignal_service::websocket: sending response WebSocketResponseMessage {: censored_ Some(200), message: Some("OK"), headers: [], body: None }
2024-04-02T10:00:52.803502Z TRACE set up message receiver:websocket: libsignal_service::websocket: sending response WebSocketResponseMessage {: censored_ Some(200), message: Some("OK"), headers: [], body: None }
2024-04-02T10:00:52.803803Z TRACE set up message receiver:websocket: libsignal_service::websocket: decoded WebSocketMessage request { r#type: Request, verb: Some("PUT"), path: Some("/api/v1/message"), body: 134 bytes, headers: ["X-Signal-Key: false", "X-Signal-Timestamp:censored_possible_phone_no"],: censored_
2024-04-02T10:00:52.803999Z TRACE set up message receiver:websocket: libsignal_service::websocket: sending request with body
2024-04-02T10:00:52.804118Z DEBUG set up message receiver:websocket: libsignal_service::websocket: Sending keep alive upon request
2024-04-02T10:00:52.813526Z TRACE message receiver:decrypt{is_signaling_key_encrypted=false input_size=134}: libsignal_service::envelope: Envelope::decrypt: not encrypted
2024-04-02T10:00:52.816930Z INFO whisperfish::worker::client: Received receipt: censored_possible_phone_no
2024-04-02T10:00:52.817111Z TRACE whisperfish::worker::client: Marking message from ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } at 2024-04-02 09:51:21.829 (censored_possible_phone_no) as received.
2024-04-02T10:00:52.818793Z WARN mark_message_received{receiver_uuid=censored-uuid-uuid-uuid-12characters timestamp=2024-04-02T09:51:21.829 delivered_at=None}: whisperfish_store::store: Could not find message with timestamp 2024-04-02 09:51:21.829
2024-04-02T10:00:52.818935Z WARN mark_message_received{receiver_uuid=censored-uuid-uuid-uuid-12characters timestamp=2024-04-02T09:51:21.829 delivered_at=None}: whisperfish_store::store: This probably indicates out-of-order receipt delivery. Please upvote issue #260
2024-04-02T10:00:52.834437Z TRACE opening envelope{service_id=aci}: whisperfish::worker::client: opened envelope sender=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters }
2024-04-02T10:00:52.834782Z TRACE process_envelope{body=SynchronizeMessage(SyncMessage { sent: None, contacts: None, request: Some(Request { r#type: Some(Keys) }), read: [], blocked: None, verified: None, configuration: None, padding: Some([192, 180, 126, 178, 212, 132, 71, 62, 129, 120, 116, 208, 25, 16, 179, 70, 36, 231, 134, 60, 210, 8, 33, 185, 114, 187, 55, 93, 159, 73, 244, 18, 29, 112, 93, 206, 10, 113, 48, 224, 252, 84, 91, 251, 240, 1, 145, 51, 128, 92, 235, 23, 38, 121, 238, 124, 216, 208, 253, 113, 129, 119, 114, 180, 198, 33, 214, 230, 191, 167, 54, 217, 242, 218, 131, 180, 200, 251, 158, 53, 53, 135, 115, 192, 102, 135, 128, 238, 233, 81, 155, 83, 154, 124, 233, 34, 151, 250, 31, 39, 117, 161, 82, 252, 73, 134, 119, 120, 183, 100, 41, 70, 122, 35, 71, 179, 31, 120, 69, 157, 39, 157, 27, 191, 92, 30, 47, 97, 86, 30, 95, 249, 166, 91, 96, 228, 87, 9, 202, 25, 157, 19, 24, 76, 141, 114, 32, 211, 34, 80, 105, 118, 70, 101, 28, 70, 7, 86, 86, 96, 4, 223, 4, 23, 145, 93, 164, 207, 120, 225, 235, 200, 9, 187, 240, 170, 152, 24, 47, 14, 241, 5]), sticker_pack_operation: [], view_once_open: None, fetch_latest: None, keys: None, message_request_response: None, outgoing_payment: None, viewed: [], pni_change_number: None, call_event: None, call_link_update: None, call_log_event: None })}: whisperfish::worker::client: Sync request message
2024-04-02T10:00:52.834912Z TRACE process_envelope{body=SynchronizeMessage(SyncMessage { sent: None, contacts: None, request: Some(Request { r#type: Some(Keys) }), read: [], blocked: None, verified: None, configuration: None, padding: Some([192, 180, 126, 178, 212, 132, 71, 62, 129, 120, 116, 208, 25, 16, 179, 70, 36, 231, 134, 60, 210, 8, 33, 185, 114, 187, 55, 93, 159, 73, 244, 18, 29, 112, 93, 206, 10, 113, 48, 224, 252, 84, 91, 251, 240, 1, 145, 51, 128, 92, 235, 23, 38, 121, 238, 124, 216, 208, 253, 113, 129, 119, 114, 180, 198, 33, 214, 230, 191, 167, 54, 217, 242, 218, 131, 180, 200, 251, 158, 53, 53, 135, 115, 192, 102, 135, 128, 238, 233, 81, 155, 83, 154, 124, 233, 34, 151, 250, 31, 39, 117, 161, 82, 252, 73, 134, 119, 120, 183, 100, 41, 70, 122, 35, 71, 179, 31, 120, 69, 157, 39, 157, 27, 191, 92, 30, 47, 97, 86, 30, 95, 249, 166, 91, 96, 228, 87, 9, 202, 25, 157, 19, 24, 76, 141, 114, 32, 211, 34, 80, 105, 118, 70, 101, 28, 70, 7, 86, 86, 96, 4, 223, 4, 23, 145, 93, 164, 207, 120, 225, 235, 200, 9, 187, 240, 170, 152, 24, 47, 14, 241, 5]), sticker_pack_operation: [], view_once_open: None, fetch_latest: None, keys: None, message_request_response: None, outgoing_payment: None, viewed: [], pni_change_number: None, call_event: None, call_link_update: None, call_log_event: None })}: whisperfish::worker::client: Processing sync request Keys
2024-04-02T10:00:52.840900Z WARN opening envelope{service_id=aci}: whisperfish::worker::client: Empty envelope
2024-04-02T10:00:52.856785Z TRACE opening envelope{service_id=aci}: whisperfish::worker::client: opened envelope sender=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters }
2024-04-02T10:00:52.857154Z TRACE process_envelope{body=SynchronizeMessage(SyncMessage { sent: Some(Sent { destination_e164: Some("+censored_possible_phone_no"), destination_service_id: Some("censored-uuid-uuid-uuid-12characters"), timestamp: Some(censored_possible_phone_no), message: Some(DataMessage { body: Some("I hope the trip into town went okay, and you made the train.\nHope you are having a lovely night, and you have gone somewhere nice for your meal.\nLooking forward to seeing you again soon. It was so nice to be yours today.\nLove you."), attachments: [], group_v2: None, flags: None, expire_timer: None,: censored_ Some(censored_possible_phone_no), quote: None, contact: [], preview: [], sticker: None, required_protocol_version: Some(6), is_view_once: None, reaction: None, delete: None, body_ranges: [], group_call_update: None, payment: None, story_context: None, gift_badge: None }), expiration_start_timestamp: Some(censored_possible_phone_no), unidentified_status: [UnidentifiedDeliveryStatus { destination_service_id: Some("censored-uuid-uuid-uuid-12characters"), unidentified: Some(false) }], is_recipient_update: None, story_message: None, story_message_recipients: [], edit_message: None }), contacts: None, request: None, read: [], blocked: None, verified: None, configuration: None, padding: Some([50, 130, 44, 121, 36, 61, 244, 133, 155, 49, 125, 86, 143, 166, 20, 195, 110, 217, 133, 206, 84, 116, 95, 239, 23, 88, 208, 38]), sticker_pack_operation: [], view_once_open: None, fetch_latest: None, keys: None, message_request_response: None, outgoing_payment: None, viewed: [], pni_change_number: None, call_event: None, call_link_update: None, call_log_event: None })}: whisperfish::worker::client: Sync sent message
2024-04-02T10:00:52.861260Z TRACE process_envelope{body=SynchronizeMessage(SyncMessage { sent: Some(Sent { destination_e164: Some("+censored_possible_phone_no"), destination_service_id: Some("censored-uuid-uuid-uuid-12characters"), timestamp: Some(censored_possible_phone_no), message: Some(DataMessage { body: Some("I hope the trip into town went okay, and you made the train.\nHope you are having a lovely night, and you have gone somewhere nice for your meal.\nLooking forward to seeing you again soon. It was so nice to be yours today.\nLove you."), attachments: [], group_v2: None, flags: None, expire_timer: None,: censored_ Some(censored_possible_phone_no), quote: None, contact: [], preview: [], sticker: None, required_protocol_version: Some(6), is_view_once: None, reaction: None, delete: None, body_ranges: [], group_call_update: None, payment: None, story_context: None, gift_badge: None }), expiration_start_timestamp: Some(censored_possible_phone_no), unidentified_status: [UnidentifiedDeliveryStatus { destination_service_id: Some("censored-uuid-uuid-uuid-12characters"), unidentified: Some(false) }], is_recipient_update: None, story_message: None, story_message_recipients: [], edit_message: None }), contacts: None, request: None, read: [], blocked: None, verified: None, configuration: None, padding: Some([50, 130, 44, 121, 36, 61, 244, 133, 155, 49, 125, 86, 143, 166, 20, 195, 110, 217, 133, 206, 84, 116, 95, 239, 23, 88, 208, 38]), sticker_pack_operation: [], view_once_open: None, fetch_latest: None, keys: None, message_request_response: None, outgoing_payment: None, viewed: [], pni_change_number: None, call_event: None, call_link_update: None, call_log_event: None })}:handle_message{source_phonenumber=Some(PhoneNumber { code: Code { value: 61, source: Plus }, national: NationalNumber { value: censored_possible_phone_no, zeros: 0 }, extension: None, carrier: None }) source_uuid=Some(censored-uuid-uuid-uuid-12characters) edit=None}:create_message{new_message=NewMessage { session_id: 1, source_e164: Some(PhoneNumber { code: Code { value: 61, source: Plus }, national: NationalNumber { value: censored_possible_phone_no, zeros: 0 }, extension: None, carrier: None }), source_uuid: Some(censored-uuid-uuid-uuid-12characters), server_guid: Some(censored-uuid-uuid-uuid-12characters), text: "I hope the trip into town went okay, and you made the train.\nHope you are having a lovely night, and you have gone somewhere nice for your meal.\nLooking forward to seeing you again soon. It was so nice to be yours today.\nLove you.", timestamp: 2024-04-02T09:51:21.829, sent: true, received: false, is_read: true, flags: 0, outgoing: true, is_unidentified: false, quote_timestamp: None, expires_in: None, story_type: None, body_ranges: None, message_type: None, edit: None } session_id=1}: whisperfish_store::store: Creating message for timestamp 2024-04-02 09:51:21.829
2024-04-02T10:00:52.885264Z TRACE process_envelope{body=SynchronizeMessage(SyncMessage { sent: Some(Sent { destination_e164: Some("+censored_possible_phone_no"), destination_service_id: Some("censored-uuid-uuid-uuid-12characters"), timestamp: Some(censored_possible_phone_no), message: Some(DataMessage { body: Some("I hope the trip into town went okay, and you made the train.\nHope you are having a lovely night, and you have gone somewhere nice for your meal.\nLooking forward to seeing you again soon. It was so nice to be yours today.\nLove you."), attachments: [], group_v2: None, flags: None, expire_timer: None,: censored_ Some(censored_possible_phone_no), quote: None, contact: [], preview: [], sticker: None, required_protocol_version: Some(6), is_view_once: None, reaction: None, delete: None, body_ranges: [], group_call_update: None, payment: None, story_context: None, gift_badge: None }), expiration_start_timestamp: Some(censored_possible_phone_no), unidentified_status: [UnidentifiedDeliveryStatus { destination_service_id: Some("censored-uuid-uuid-uuid-12characters"), unidentified: Some(false) }], is_recipient_update: None, story_message: None, story_message_recipients: [], edit_message: None }), contacts: None, request: None, read: [], blocked: None, verified: None, configuration: None, padding: Some([50, 130, 44, 121, 36, 61, 244, 133, 155, 49, 125, 86, 143, 166, 20, 195, 110, 217, 133, 206, 84, 116, 95, 239, 23, 88, 208, 38]), sticker_pack_operation: [], view_once_open: None, fetch_latest: None, keys: None, message_request_response: None, outgoing_payment: None, viewed: [], pni_change_number: None, call_event: None, call_link_update: None, call_log_event: None })}:handle_message{source_phonenumber=Some(PhoneNumber { code: Code { value: 61, source: Plus }, national: NationalNumber { value: censored_possible_phone_no, zeros: 0 }, extension: None, carrier: None }) source_uuid=Some(censored-uuid-uuid-uuid-12characters) edit=None}:create_message{new_message=NewMessage { session_id: 1, source_e164: Some(PhoneNumber { code: Code { value: 61, source: Plus }, national: NationalNumber { value: censored_possible_phone_no, zeros: 0 }, extension: None, carrier: None }), source_uuid: Some(censored-uuid-uuid-uuid-12characters), server_guid: Some(censored-uuid-uuid-uuid-12characters), text: "I hope the trip into town went okay, and you made the train.\nHope you are having a lovely night, and you have gone somewhere nice for your meal.\nLooking forward to seeing you again soon. It was so nice to be yours today.\nLove you.", timestamp: 2024-04-02T09:51:21.829, sent: true, received: false, is_read: true, flags: 0, outgoing: true, is_unidentified: false, quote_timestamp: None, expires_in: None, story_type: None, body_ranges: None, message_type: None, edit: None } session_id=1}: whisperfish_store::store: Inserted message id 374
2024-04-02T10:00:52.887503Z TRACE set up message receiver:websocket: libsignal_service::websocket: sending response WebSocketResponseMessage {: censored_ Some(200), message: Some("OK"), headers: [], body: None }
2024-04-02T10:00:52.888028Z TRACE get_identity_key_pair: whisperfish_store::store::protocol_store: reading own identity key pair at /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/pni_identity_key
2024-04-02T10:00:52.888238Z TRACE get_identity_key_pair:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/pni_identity_key"}: whisperfish_store::store::utils: Opening file (async) /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/pni_identity_key
2024-04-02T10:00:52.911102Z ERROR ObservingModelActor{T="whisperfish::model::sessions::SessionsImpl" event=Event { type: Update, table: Sessions, key: RowId(1), relations: [] }}:observe{storage=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } event=Event { type: Update, table: Sessions, key: RowId(1), relations: [] }}:set_message_id{v=374}:qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:53.499928Z TRACE set up message receiver:websocket: libsignal_service::websocket: decoded WebSocketMessage response { r#type: Response, status: Some(200), message: Some("OK"), body: 558 bytes, headers: ["Content-Type:application/json", "Content-Length:558"],: censored_
2024-04-02T10:00:53.500139Z TRACE set up message receiver:websocket: libsignal_service::websocket: decoded WebSocketMessage response { r#type: Response, status: Some(200), message: Some("OK"), body: 0 bytes, headers: ["Content-Length:0"],: censored_
2024-04-02T10:00:53.500215Z TRACE set up message receiver:websocket: libsignal_service::websocket: decoded WebSocketMessage request { r#type: Request, verb: Some("PUT"), path: Some("/api/v1/queue/empty"), body: 0 bytes, headers: ["X-Signal-Timestamp:censored_possible_phone_no"],: censored_
2024-04-02T10:00:53.500277Z TRACE set up message receiver:websocket: libsignal_service::websocket: sending request with body
2024-04-02T10:00:53.502921Z INFO whisperfish::worker::client: Message queue is empty!
2024-04-02T10:00:53.503539Z INFO handle_profile_fetched{recipient_uuid=censored-uuid-uuid-uuid-12characters profile="SignalServiceProfile { identity_key: Some(\"...\"), name: Some(\"...\"), about: None, about_emoji: None, avatar: None, unidentified_access: Some(\"...\"), unrestricted_unidentified_access: false, capabilities: DeviceCapabilities { storage: false, sender_key: false, announcement_group: false, change_number: false, stories: false, gift_badges: true, pni: true, payment_activation: true } }"}: whisperfish::worker::client::profile: Decrypted profile Profile { name: Some(ProfileName { given_name: "Tess Egan", family_name: None }), about: None, about_emoji: None, avatar: None }
2024-04-02T10:00:53.508773Z TRACE whisperfish::worker::client::profile: Profile has no avatar to remove.
2024-04-02T10:00:53.526513Z TRACE save_profile{profile=StoreProfile { given_name: Some("Tess Egan"), family_name: None, joined_name: Some("Tess Egan"), about_text: None, emoji: None, avatar: None, unidentified: Enabled, last_fetch: 2024-04-02T10:00:53.censored_possible_phone_no, r_uuid: censored-uuid-uuid-uuid-12characters, r_id: 3, r_key: Some([48, 165, 178, 53, 134, 83, 253, 237, 153, 2, 42, 107, 23, 98, 33, 126, 76, 69, 241, 17, 199, 229, 51, 135, 10, 46, 199, 196, 235, 221, 61, 249]) }}: whisperfish_store::store: Profile saved to database
2024-04-02T10:00:53.526948Z INFO whisperfish::worker::client::profile: Profile for censored-uuid-uuid-uuid-12characters saved!
2024-04-02T10:00:53.527061Z TRACE set up message receiver:websocket: libsignal_service::websocket: sending response WebSocketResponseMessage {: censored_ Some(200), message: Some("OK"), headers: [], body: None }
2024-04-02T10:00:53.529248Z TRACE ObservingModelActor{T="whisperfish::model::recipient::RecipientImpl" event=Event { type: Update, table: Recipients, key: RowId(3), relations: [] }}: whisperfish::model::recipient: initializing Recipient
2024-04-02T10:00:53.623092Z TRACE ObservingModelActor{T="whisperfish::model::recipient::RecipientImpl" event=Event { type: Update, table: Recipients, key: RowId(3), relations: [] }}: whisperfish::model::recipient: initializing Recipient
2024-04-02T10:00:53.713575Z TRACE get_identity_key_pair:read_file{self=Storage { path: "/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish", is_encrypted: true } path="/home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/pni_identity_key"}: whisperfish_store::store::utils: Read file /home/defaultuser/.local/share/be.rubdos/harbour-whisperfish/storage/identity/pni_identity_key with 128 bytes
2024-04-02T10:00:53.714094Z TRACE websocket: libsignal_service_hyper::websocket: Will start websocket at Url { scheme: "wss", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("chat.signal.org")), port: None, path: "/v1/websocket/", query: None, fragment: None }
2024-04-02T10:00:54.393593Z DEBUG whisperfish::worker::client::unidentified: Fetched 2 sender certificates
2024-04-02T10:00:54.547660Z DEBUG websocket: libsignal_service_hyper::websocket: WebSocket connected: Response { status: 101, version: HTTP/1.1, headers: {"date": "Tue, 02 Apr 2024 10:00:53 GMT", "vary": "Origin", "upgrade": "websocket", "connection": "Upgrade", "sec-websocket-accept": "LKi3wofGYRaK+M+vP4D6bfYssj4="}, body: None }
2024-04-02T10:00:54.547969Z TRACE whisperfish::worker::client: Unimplemented sync request: Request {
r#type: Some(
Keys,
),
}
2024-04-02T10:00:54.552323Z TRACE libsignal_service_hyper::websocket: Triggering keep-alive
2024-04-02T10:00:54.548266Z ERROR whisperfish::worker::client: Unimplemented sync request type: Keys
Stack backtrace:
0: <unknown>
1: <unknown>
2: <unknown>
3: <unknown>
4: <unknown>
5: <unknown>
6: <unknown>
7: <unknown>
8: <unknown>
9: <unknown>
10: <unknown>
11: <unknown>
12: <unknown>
13: _ZN7QObject5eventEP6QEvent
14: _ZN16QCoreApplication6notifyEP7QObjectP6QEvent
15: _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent
16: _ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData
17: <unknown>
18: g_main_context_dispatch
19: <unknown>
20: g_main_context_iteration
21: _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE
22: _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE
23: _ZN16QCoreApplication4execEv
24: <unknown>
25: <unknown>
26: <unknown>
27: <unknown>
28: <unknown>
29: <unknown>
30: <unknown>
31: <unknown>
32: __libc_start_main in handle_sync_request()
2024-04-02T10:00:54.582696Z ERROR websocket: libsignal_service::websocket: SignalWebSocket: Websocket error: SignalWebSocket: end of application request stream; socket closing
2024-04-02T10:00:57.528298Z DEBUG qt_log: whisperfish::qtlog: qml/pages/MainPage.qml:217:onClicked(): Activating session: 1
2024-04-02T10:00:58.438790Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.447614Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.469764Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.577428Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.584949Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.591299Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.600913Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.624384Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.631853Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.637312Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.645848Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.664329Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.671705Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.677833Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.686190Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.705782Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.712992Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.719219Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.728243Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.742943Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:58.773366Z TRACE initialize PNI: whisperfish::worker::client::migrations::pni: PNI identity key pair already exists, assuming PNI is initialized
2024-04-02T10:00:59.259157Z TRACE RefreshPreKeys:update_pre_key_bundle{service_id_type=PhoneNumberIdentity use_last_resort_key=true force=false}: libsignal_service::account_manager: Remaining pre-keys on server: PreKeyStatus { count: 100, pq_count: 100 }
2024-04-02T10:00:59.259365Z DEBUG RefreshPreKeys:update_pre_key_bundle{service_id_type=PhoneNumberIdentity use_last_resort_key=true force=false}: libsignal_service::account_manager: Available keys sufficient
2024-04-02T10:00:59.259553Z TRACE whisperfish::worker::client: successfully refreshed prekeys
2024-04-02T10:00:59.267497Z WARN qt_log: whisperfish::qtlog: qml/pages/ConversationPage.qml:77:22: Unable to assign [undefined] to QString
2024-04-02T10:00:59.737258Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:59.852477Z ERROR qt_log: whisperfish::qtlog: qml/js/emoji.js:238:getStylePath(): no emoji style found
2024-04-02T10:00:59.890074Z WARN qt_log: whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:81:30: Unable to assign [undefined] to QString
2024-04-02T10:00:59.890302Z WARN qt_log: whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:95:32: Unable to assign [undefined] to QString
2024-04-02T10:00:59.890397Z WARN qt_log: whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:171:23: Unable to assign [undefined] to QString
2024-04-02T10:01:23.415581Z DEBUG whisperfish::config::settings: Fallback notification_privacy setting onto legacy options
2024-04-02T10:01:23.419022Z DEBUG whisperfish::config::settings: Fallback notification_privacy setting onto legacy options
2024-04-02T10:01:31.365073Z TRACE whisperfish::worker::client::linked_devices: handle(ReloadLinkedDevices)
2024-04-02T10:01:32.161755Z TRACE whisperfish::worker::client::linked_devices: Successfully refreshed linked devices: [DeviceInfo {: censored_ Some("Whisperfisg="), created: 2023-01-04T08:44:10.101Z, last_seen: 2024-04-02T00:00:00Z }, DeviceInfo {: censored_ Some("CiEFggzO/eZIIRdZ1mRRCO/HlNClEi6yD/iudZY19n0azHUSEMI5zFu1hJnCiuoB0GPnehYaDExoLR2TiTp2aJr1CQ=="), created: 2024-04-02T06:12:36.615Z, last_seen: 2024-04-02T00:00:00Z }]
2024-04-02T10:01:32.167641Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:112:lastSeenTime(): Tue Apr 2 00:00:00 2024 GMT+1100
2024-04-02T10:01:32.182579Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:112:lastSeenTime(): Tue Apr 2 00:00:00 2024 GMT+1100
(harbour-whisperfish:8814): GStreamer-Base-WARNING **: 21:01:38.749: viewfinderbin-capsfilter: transform_caps returned caps which are not a real subset of the filter caps
2024-04-02T10:01:40.836401Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:27:(): Add device: sgnl://linkdevice?uuid=53JIDQ_xURzDGoNClru68g&pub_key=BcK4BmRMIcSI8cz8F%2Bm1tFKlLBNMpWUrErDG6XRJrI0a
2024-04-02T10:01:40.906753Z TRACE whisperfish::worker::client::linked_devices: handle(LinkDevice)
2024-04-02T10:01:42.051030Z TRACE whisperfish::worker::client::linked_devices: Linked device succesfully
2024-04-02T10:01:42.053349Z TRACE whisperfish::worker::client::linked_devices: handle(ReloadLinkedDevices)
2024-04-02T10:01:42.819803Z TRACE whisperfish::worker::client::linked_devices: Successfully refreshed linked devices: [DeviceInfo {: censored_ Some("Whisperfisg="), created: 2023-01-04T08:44:10.101Z, last_seen: 2024-04-02T00:00:00Z }, DeviceInfo {: censored_ Some("CiEFggzO/eZIIRdZ1mRRCO/HlNClEi6yD/iudZY19n0azHUSEMI5zFu1hJnCiuoB0GPnehYaDExoLR2TiTp2aJr1CQ=="), created: 2024-04-02T06:12:36.615Z, last_seen: 2024-04-02T00:00:00Z }]
2024-04-02T10:01:42.827365Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:112:lastSeenTime(): Tue Apr 2 00:00:00 2024 GMT+1100
2024-04-02T10:01:42.840118Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:112:lastSeenTime(): Tue Apr 2 00:00:00 2024 GMT+1100
2024-04-02T10:01:47.777928Z TRACE libsignal_service_hyper::websocket: Triggering keep-alive
2024-04-02T10:01:47.779359Z DEBUG set up message receiver:websocket: libsignal_service::websocket: Sending keep alive upon request
2024-04-02T10:01:48.012424Z TRACE set up message receiver:websocket: libsignal_service::websocket: decoded WebSocketMessage response { r#type: Response, status: Some(200), message: Some("OK"), body: 0 bytes, headers: ["Content-Length:0"],: censored_
2024-04-02T10:01:49.552761Z TRACE libsignal_service_hyper::websocket: Triggering keep-alive
2024-04-02T10:01:49.552896Z INFO libsignal_service_hyper::websocket: Websocket sink has closed: SendError { kind: Disconnected }.
2024-04-02T10:01:51.781706Z TRACE multidevice sync profile:websocket: libsignal_service_hyper::websocket: Will start websocket at Url { scheme: "wss", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("chat.signal.org")), port: None, path: "/v1/websocket/", query: None, fragment: None }
2024-04-02T10:01:52.637584Z DEBUG multidevice sync profile:websocket: libsignal_service_hyper::websocket: WebSocket connected: Response { status: 101, version: HTTP/1.1, headers: {"date": "Tue, 02 Apr 2024 10:01:51 GMT", "vary": "Origin", "upgrade": "websocket", "connection": "Upgrade", "sec-websocket-accept": "Uc/xT76/z51E2/uKZdNeDV3LBPE="}, body: None }
2024-04-02T10:01:52.642310Z TRACE libsignal_service_hyper::websocket: Triggering keep-alive
2024-04-02T10:01:52.644032Z DEBUG multidevice sync profile:websocket: libsignal_service::websocket: Sending keep alive upon request
2024-04-02T10:01:52.644602Z TRACE set up message receiver:websocket: libsignal_service::websocket: sending WebSocketRequestMessage { verb: Some("GET"), path: Some("/v2/attachments/form/upload"), body (bytes): None, headers: [],: censored_
2024-04-02T10:01:52.872107Z TRACE multidevice sync profile:websocket: libsignal_service::websocket: decoded WebSocketMessage response { r#type: Response, status: Some(200), message: Some("OK"), body: 0 bytes, headers: ["Content-Length:0"],: censored_
2024-04-02T10:01:52.874358Z TRACE set up message receiver:websocket: libsignal_service::websocket: decoded WebSocketMessage response { r#type: Response, status: Some(200), message: Some("OK"), body: 938 bytes, headers: ["Content-Type:application/json", "Content-Length:938"],: censored_
2024-04-02T10:01:52.876671Z TRACE multidevice sync profile:send_contact_details{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } online=false complete=false unidentified_access=false}:upload_contact_details:upload_attachment{spec=AttachmentSpec { content_type: "application/octet-stream", length: 100, file_name: None, preview: None, voice_note: None, borderless: None, width: None, height: None, caption: None, blur_hash: None } size=100}:Uploading attachment:post_to_cdn0{path="attachments/" file=""}: libsignal_service_hyper::push_service: Sending PUT with Content-Type=multipart/form-data; boundary=BZfwxOwcUWI0RFWX8ezvGd2qoBc8CbQV1O3psQJlpm4HWvLHTymmhltL4A0n and length 2577
2024-04-02T10:01:54.019884Z DEBUG multidevice sync profile:send_contact_details{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } online=false complete=false unidentified_access=false}:upload_contact_details:upload_attachment{spec=AttachmentSpec { content_type: "application/octet-stream", length: 100, file_name: None, preview: None, voice_note: None, borderless: None, width: None, height: None, caption: None, blur_hash: None } size=100}:Uploading attachment:post_to_cdn0{path="attachments/" file=""}: libsignal_service_hyper::push_service: HyperPushService::PUT response: Response { status: 204, version: HTTP/1.1, headers: {"connection": "keep-alive", "x-amz-id-2": "fJDMOVKotthxCkLwyIywLHsEGiY7VbQDdvxQ7FZ9kKPrwdDz8liB730XzCFQ7qCcmPkL7sk34YA=", "x-amz-request-id": "B3HQRSBKWT040F3E", "date": "Tue, 02 Apr 2024 10:01:53 GMT", "x-amz-expiration": "expiry-date=\"Thu, 18 Apr 2024 00:00:00 GMT\", rule-id=\"Expire\"", "x-amz-server-side-encryption": "AES256", "etag": "\"f506b3d1bed8a4bd0284f8179e5c8cc1\"", "location": "https://whispersystems-textsecure-attachments.s3.amazonaws.com/censored_possible_phone_no0180", "server": "AmazonS3", "x-cache": "Miss from cloudfront", "via": "1.1 aa9f81231a4ef3dc553cfcensored_possible_phone_noea0.cloudfront.net (CloudFront)", "x-amz-cf-pop": "MEL50-C1", "x-amz-cf-id": "GX_2D2kXaI3UCAI74Dlv5ili_fBjT3h4kwVo5rbtzHc7uZw1uLTijg=="}, body: Body(Empty) }
2024-04-02T10:01:54.026013Z TRACE multidevice sync profile:send_contact_details{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } online=false complete=false unidentified_access=false}:send_message{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=false}:try_send_message{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=false}:create_encrypted_messages{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } unidentified_access=false}: libsignal_service::sender: sending message to device 2
2024-04-02T10:01:54.028778Z TRACE multidevice sync profile:send_contact_details{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } online=false complete=false unidentified_access=false}:send_message{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=false}:try_send_message{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=false}:create_encrypted_messages{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } unidentified_access=false}:create_encrypted_message{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } device_id=DeviceId(2) unidentified_access=false}: libsignal_service::sender: encrypting message for censored-uuid-uuid-uuid-12characters.2
2024-04-02T10:01:54.054943Z DEBUG multidevice sync profile:send_contact_details{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } online=false complete=false unidentified_access=false}:send_message{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=false}:try_send_message{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=false}: libsignal_service::sender: sending identified
2024-04-02T10:01:54.056948Z TRACE set up message receiver:websocket: libsignal_service::websocket: sending WebSocketRequestMessage { verb: Some("PUT"), path: Some("/v1/messages/censored-uuid-uuid-uuid-12characters"), body (bytes): Some(1352), headers: ["content-type:application/json"],: censored_
2024-04-02T10:01:54.292301Z TRACE set up message receiver:websocket: libsignal_service::websocket: decoded WebSocketMessage response { r#type: Response, status: Some(200), message: Some("OK"), body: 19 bytes, headers: ["Content-Type:application/json", "Content-Length:19"],: censored_
2024-04-02T10:01:54.292776Z DEBUG multidevice sync profile:send_contact_details{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } online=false complete=false unidentified_access=false}:send_message{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=false}:try_send_message{recipient=ServiceAddress { uuid: censored-uuid-uuid-uuid-12characters } timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=false}: libsignal_service::sender: message sent!
2024-04-02T10:01:54.293254Z ERROR multidevice sync profile:websocket: libsignal_service::websocket: SignalWebSocket: Websocket error: SignalWebSocket: end of application request stream; socket closing
(harbour-whisperfish:8814): GStreamer-Base-WARNING **: 21:02:18.561: viewfinderbin-capsfilter: transform_caps returned caps which are not a real subset of the filter caps
2024-04-02T10:02:21.649594Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:27:(): Add device: sgnl://linkdevice?uuid=_cBi-z6cOKXxYgyrQnhX3w&pub_key=BcK4BmRMIcSI8cz8F%2Bm1tFKlLBNMpWUrErDG6XRJrI0a
2024-04-02T10:02:21.649987Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:27:(): Add device: sgnl://linkdevice?uuid=_cBi-z6cOKXxYgyrQnhX3w&pub_key=BcK4BmRMIcSI8cz8F%2Bm1tFKlLBNMpWUrErDG6XRJrI0a
2024-04-02T10:02:21.740738Z TRACE whisperfish::worker::client::linked_devices: handle(LinkDevice)
2024-04-02T10:02:21.744465Z TRACE whisperfish::worker::client::linked_devices: handle(LinkDevice)
2024-04-02T10:02:22.556537Z ERROR whisperfish::worker::client::linked_devices: Linking device failed: Rate limit exceeded
2024-04-02T10:02:22.895075Z TRACE whisperfish::worker::client::linked_devices: Linked device succesfully
2024-04-02T10:02:22.896699Z TRACE whisperfish::worker::client::linked_devices: handle(ReloadLinkedDevices)
2024-04-02T10:02:23.781413Z TRACE whisperfish::worker::client::linked_devices: Successfully refreshed linked devices: [DeviceInfo {: censored_ Some("Whisperfisg="), created: 2023-01-04T08:44:10.101Z, last_seen: 2024-04-02T00:00:00Z }, DeviceInfo {: censored_ Some("CiEFggzO/eZIIRdZ1mRRCO/HlNClEi6yD/iudZY19n0azHUSEMI5zFu1hJnCiuoB0GPnehYaDExoLR2TiTp2aJr1CQ=="), created: 2024-04-02T06:12:36.615Z, last_seen: 2024-04-02T00:00:00Z }]
2024-04-02T10:02:23.788697Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:112:lastSeenTime(): Tue Apr 2 00:00:00 2024 GMT+1100
2024-04-02T10:02:23.800964Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:112:lastSeenTime(): Tue Apr 2 00:00:00 2024 GMT+1100
2024-04-02T10:02:42.777783Z TRACE libsignal_service_hyper::websocket: Triggering keep-alive
2024-04-02T10:02:42.778223Z DEBUG set up message receiver:websocket: libsignal_service::websocket: Sending keep alive upon request
2024-04-02T10:02:43.022384Z TRACE set up message receiver:websocket: libsignal_service::websocket: decoded WebSocketMessage response { r#type: Response, status: Some(200), message: Some("OK"), body: 0 bytes, headers: ["Content-Length:0"],: censored_
2024-04-02T10:02:47.643161Z TRACE libsignal_service_hyper::websocket: Triggering keep-alive
2024-04-02T10:02:47.643306Z INFO libsignal_service_hyper::websocket: Websocket sink has closed: SendError { kind: Disconnected }.
2024-04-02T10:03:05.507196Z TRACE whisperfish::worker::client::linked_devices: handle(ReloadLinkedDevices)
2024-04-02T10:03:06.342426Z TRACE whisperfish::worker::client::linked_devices: Successfully refreshed linked devices: [DeviceInfo {: censored_ Some("Whisperfisg="), created: 2023-01-04T08:44:10.101Z, last_seen: 2024-04-02T00:00:00Z }, DeviceInfo {: censored_ Some("CiEFggzO/eZIIRdZ1mRRCO/HlNClEi6yD/iudZY19n0azHUSEMI5zFu1hJnCiuoB0GPnehYaDExoLR2TiTp2aJr1CQ=="), created: 2024-04-02T06:12:36.615Z, last_seen: 2024-04-02T00:00:00Z }]
2024-04-02T10:03:06.349444Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:112:lastSeenTime(): Tue Apr 2 00:00:00 2024 GMT+1100
2024-04-02T10:03:06.357401Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:112:lastSeenTime(): Tue Apr 2 00:00:00 2024 GMT+1100
(harbour-whisperfish:8814): GStreamer-Base-WARNING **: 21:03:24.893: viewfinderbin-capsfilter: transform_caps returned caps which are not a real subset of the filter caps
2024-04-02T10:03:27.504559Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:27:(): Add device: sgnl://linkdevice?uuid=cYd6KQLjfB2YLI6CteDZtw&pub_key=BcK4BmRMIcSI8cz8F%2Bm1tFKlLBNMpWUrErDG6XRJrI0a
2024-04-02T10:03:27.506178Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:27:(): Add device: sgnl://linkdevice?uuid=cYd6KQLjfB2YLI6CteDZtw&pub_key=BcK4BmRMIcSI8cz8F%2Bm1tFKlLBNMpWUrErDG6XRJrI0a
2024-04-02T10:03:27.506925Z DEBUG qt_log: whisperfish::qtlog: qml/pages/LinkedDevices.qml:27:(): Add device: sgnl://linkdevice?uuid=cYd6KQLjfB2YLI6CteDZtw&pub_key=BcK4BmRMIcSI8cz8F%2Bm1tFKlLBNMpWUrErDG6XRJrI0a
2024-04-02T10:03:27.618814Z TRACE whisperfish::worker::client::linked_devices: handle(LinkDevice)
2024-04-02T10:03:27.622862Z TRACE whisperfish::worker::client::linked_devices: handle(LinkDevice)
2024-04-02T10:03:27.627442Z TRACE whisperfish::worker::client::linked_devices: handle(LinkDevice)
2024-04-02T10:03:28.450729Z ERROR whisperfish::worker::client::linked_devices: Linking device failed: Rate limit exceeded
2024-04-02T10:03:28.453349Z ERROR whisperfish::worker::client::linked_devices: Linking device failed: Rate limit exceeded
2024-04-02T10:03:28.459277Z ERROR whisperfish::worker::client::linked_devices: Linking device failed: Rate limit exceeded
2024-04-02T10:03:36.523880Z TRACE libsignal_service_hyper::websocket: Triggering keep-alive
2024-04-02T10:03:36.524310Z DEBUG set up message receiver:websocket: libsignal_service::websocket: Sending keep alive upon request
2024-04-02T10:03:36.757543Z TRACE set up message receiver:websocket: libsignal_service::websocket: decoded WebSocketMessage response { r#type: Response, status: Some(200), message: Some("OK"), body: 0 bytes, headers: ["Content-Length:0"],: censored_
[defaultuser@Justin-sailfish ~]$ exit