signalapp / Signal-Desktop

A private messenger for Windows, macOS, and Linux.
https://signal.org/download
GNU Affero General Public License v3.0
14.16k stars 2.57k forks source link

[Local development problems (2)] Can't use 'Set Up as Standalone Device' on Linux due to `setAsDefaultProtocolClient` not working as expected; getaddrinfo ENOTFOUND create.signal.art #6894

Closed ben-biddington closed 3 weeks ago

ben-biddington commented 4 weeks ago

Using a supported version?

Overall summary

Apologies if this is the wrong way to submit. Happy to move it elsewhere.

I am following the instructions for developing locally, and it almost works.

I am trying the "Set Up as Standalone Device" part.

I can complete the captcha, but then when I open the link, it opens my installed version of Signal desktop rather than the development one I have running.

Potential fix

I came across this issue and tried the workaround mentioned.

This worked and allowed me to log in.

I have outlined more information here

Steps to reproduce

On Linux, start the development version.

  1. Choose "Set Up as Standalone Device" from the file menu
  2. Complete captcha
  3. Select "open link" image

Expected result

The development version should initialize, I should get an SMS and be able to enter it in the box.

Actual result

My installed (production) version of Signal is opened. I do not receive an SMS.

I am unable to proceed with local version

Screenshots

No response

Signal version

7.10.0

Operating system

Ubuntu 22.04.4 LTS, 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Version of Signal on your phone

7.3.1

Link to debug log

No response

ben-biddington commented 3 weeks ago

Also since 5-Jun-2024 I have been seeing this error:

yarn generate 
yarn run v1.22.10
$ npm-run-all build-protobuf build:esbuild build:dns-fallback build:icu-types build:compact-locales sass get-expire-time copy-components
$ yarn build-module-protobuf
$ pbjs --target static-module --force-long --no-typeurl --no-verify --no-create --no-convert --wrap commonjs --out ts/protobuf/compiled.js protos/*.proto && pbts --no-comments --out ts/protobuf/compiled.d.ts ts/protobuf/compiled.js
$ node scripts/esbuild.js
$ node ts/scripts/generate-dns-fallback.js
Error: getaddrinfo ENOTFOUND create.signal.art
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) {
  errno: -3007,
  code: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'create.signal.art'
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ERROR: "build:dns-fallback" exited with 1.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Not sure if intermittent or not.

Can be resolved temporarily with:

git diff ts
diff --git a/ts/scripts/generate-dns-fallback.ts b/ts/scripts/generate-dns-fallback.ts
index dec7023df..3baaa738d 100644
--- a/ts/scripts/generate-dns-fallback.ts
+++ b/ts/scripts/generate-dns-fallback.ts
@@ -20,7 +20,7 @@ const FALLBACK_DOMAINS = [
   'cdn3.signal.org',
   'updates2.signal.org',
   'sfu.voip.signal.org',
-  'create.signal.art',
+  // 'create.signal.art',
 ];

 async function main() {
jamiebuilds-signal commented 3 weeks ago

The easiest fix is to quit both apps and open the dev instance. Generally it's just a matter of whatever client launched most recently stays registered with the protocol.

With the other dns fallback error, we've fixed it but it hasn't been released yet

ben-biddington commented 3 weeks ago

The easiest fix is to quit both apps and open the dev instance

Yep I have tried this but I can't make it work -- you have seen this working on Linux?

Interesting that my production version did make it work, though, hmm

scottnonnenberg-signal commented 3 weeks ago

You can also grab the result link from the captcha page and then start your dev instance with yarn start <URL> and that should fix things for you (you can either use a second terminal or shut things down and start it afresh - both should work).