Can't start Neo4j Desktop on Debian 10

I'm trying to install Neo4j Desktop on Debian 10.

I have followed the instructions here:

I have downloaded the file and made it executable.

When I run the file from the command line, though, I get the following response:

$ ./neo4j-desktop-offline-1.2.6-x86_64.appimage 
[3615:0408/165836.845213:FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /tmp/.mount_neo4j-NBrztn/chrome-sandbox is owned by root and has mode 4755.
Trace/breakpoint trap

I tried making sure that I have a file with that ownership and those permissions at that location, but it didn't help; I just got a slightly different message:

$ ./neo4j-desktop-offline-1.2.6-x86_64.appimage 
[4942:0408/170645.281850:FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /tmp/.mount_neo4j-0qHCJ1/chrome-sandbox is owned by root and has mode 4755.
Trace/breakpoint trap

I then tried running the file with sudo, and I got the following:

$ sudo ./neo4j-desktop-offline-1.2.6-x86_64.appimage 
[sudo] password for georgehill: 
[4962:0408/170713.135413:FATAL:atom_main_delegate.cc(211)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
Trace/breakpoint trap

So then I tried running it with the --no-sandbox flag, and I got a bunch of error messages and the installer seemed to hang.

$ sudo ./neo4j-desktop-offline-1.2.6-x86_64.appimage --no-sandbox
[17:07:36.509] [info] Starting Neo4j Desktop 1.2.6 @ Linux 4.19.0-8-amd64
(node:4977) DeprecationWarning: file property is deprecated and will be removed in v5.
(node:4977) DeprecationWarning: file property is deprecated and will be removed in v5.
[17:07:36.931] [info] GraphQL server is running @ http://localhost:11001
[17:07:36.999] [info] Initializing persistence
[17:07:37.000] [info] GraphQL server is running @ 127.0.0.1:11002
[17:07:37.003] [info] Creating persistent store - projects
[17:07:37.025] [info] Creating persistent store - databases
[17:07:37.035] [info] Creating persistent store - userData
[17:07:37.049] [info] Creating persistent store - graphApps
[17:07:37.060] [info] Creating persistent store - plugins
[17:07:37.126] [info] Creating persistent store - distributions
[17:07:37.135] [info] Creating persistent store - licenses
[17:07:37.146] [info] Creating persistent store - karhu
[17:07:37.156] [info] Creating persistent store - permissions
[17:07:37.168] [info] Creating persistent store - certificates
[17:07:37.200] [info] Configuring crash reporting
[17:07:37.203] [info] Creating new client ID
[17:07:37.207] [info] Reading settings
[17:07:37.213] [info] Reading bundled resources /tmp/.mount_neo4j-fK0sBN/resources
[17:07:37.217] [info] Distribution folder for java should exist
[17:07:37.223] [info] Will copy [
  'zulu11.35.13-ca-jdk11.0.5-linux_x64.tar.gz',
  'zulu8.42.0.21-ca-jdk8.0.232-linux_x64.tar.gz'
]
[17:07:37.890] [info] Distribution folder for neo4j should exist
[17:07:37.891] [info] Will copy [ 'neo4j-enterprise-4.0.3-unix.tar.gz' ]
[17:07:38.151] [info] Reading bundled resources /tmp/.mount_neo4j-fK0sBN/resources
[17:07:38.153] [info] Distribution folder for graphApps should exist
[17:07:38.155] [info] Will copy [ 'neo4j-bloom-1.2.1.tar.gz', 'neo4j-browser-4.0.6.tar.gz' ]
[17:07:38.202] [info] Configuring proxy: NO_PROXY
[17:07:38.288] [error] App initialization error: Error: Unknown or unsupported transport “disabled” for address “disabled:” {
  constructor: 'Error',
  stack: 'Error: Unknown or unsupported transport “disabled” for address “disabled:”'
}
^C[17:10:03.346] [info] App is quitting
[17:10:03.398] [info] App quit with 0 code
(electron) 'getName function' is deprecated and will be removed. Please use 'name property' instead.

I tried that one more time and got a different set of error messages and another apparent hang:

$ sudo ./neo4j-desktop-offline-1.2.6-x86_64.appimage --no-sandbox
[17:10:21.287] [info] Starting Neo4j Desktop 1.2.6 @ Linux 4.19.0-8-amd64
(node:5390) DeprecationWarning: file property is deprecated and will be removed in v5.
(node:5390) DeprecationWarning: file property is deprecated and will be removed in v5.
[17:10:21.727] [info] GraphQL server is running @ http://localhost:11001
[17:10:21.784] [info] Initializing persistence
[17:10:21.786] [info] GraphQL server is running @ 127.0.0.1:11002
[17:10:21.974] [info] Configuring crash reporting
[17:10:21.976] [info] Reading settings
[17:10:21.980] [info] Reading bundled resources /tmp/.mount_neo4j-EAeCel/resources
[17:10:21.983] [info] Distribution folder for java should exist
[17:10:25.253] [info] Will copy []
[17:10:25.268] [info] Distribution folder for neo4j should exist
[17:10:26.573] [info] Will copy []
[17:10:26.574] [info] Reading bundled resources /tmp/.mount_neo4j-EAeCel/resources
[17:10:26.585] [info] Distribution folder for graphApps should exist
[17:10:26.588] [warn] Failed to read installed 'neo4j-bloom', will replace with bundled distribution {
  constructor: 'Error',
  stack: 'Error: Graph-App[neo4j-bloom] does not contain package.json\n' +
    '    at l (/tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:34138)\n' +
    '    at async u (/tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:99122)\n' +
    '    at async /tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:50608\n' +
    '    at async Promise.all (index 0)\n' +
    '    at async g (/tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:50480)\n' +
    '    at async /tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:52145\n' +
    '    at async t.default (/tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:52408)\n' +
    '    at async J (/tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:92046)'                                                                                
}
[17:10:26.593] [warn] Failed to read installed 'neo4j-browser', will replace with bundled distribution {
  constructor: 'Error',
  stack: 'Error: Graph-App[neo4j-browser] does not contain package.json\n' +
    '    at l (/tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:34138)\n' +
    '    at async u (/tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:99122)\n' +
    '    at async /tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:50608\n' +
    '    at async Promise.all (index 1)\n' +
    '    at async g (/tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:50480)\n' +
    '    at async /tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:52145\n' +
    '    at async t.default (/tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:52408)\n' +
    '    at async J (/tmp/.mount_neo4j-EAeCel/resources/app.asar/dist/main.prod.js:1:92046)'
}
[17:10:26.595] [info] Will copy [ 'neo4j-bloom-1.2.1.tar.gz', 'neo4j-browser-4.0.6.tar.gz' ]
[17:10:26.646] [info] Configuring proxy: NO_PROXY
[17:10:26.710] [error] App initialization error: Error: Unknown or unsupported transport “disabled” for address “disabled:” {
  constructor: 'Error',
  stack: 'Error: Unknown or unsupported transport “disabled” for address “disabled:”'
}
^C[17:11:08.724] [info] App is quitting
[17:11:08.728] [info] App quit with 0 code
(electron) 'getName function' is deprecated and will be removed. Please use 'name property' instead.

I'd appreciate any help.

Thank you.

I'm writing to follow up with this question.

I really need to get Neo4j Desktop working.

Can anyone help me with this?

Thank you.

Hey @g.hill.2006,

Thank you for your report.

This error is coming from Electron. In short, Electron is using a feature from the Linux kernel that is disabled in Debian. They have a fallback binary for these cases but it seems like electron-builder is packaging it with the wrong permissions, hence the permission error you got.

This comment explains the issue more in detail:

To fix that error you can try executing (as a regular user) Neo4j Desktop with the --no-sandbox flag, or run this command to enable the kernel feature Electron is using:

sudo sysctl kernel.unprivileged_userns_clone=1

Let me know if that helps.

Thank you very much. Using the --no-sandbox flag as a regular user did the trick.