I am trying to run the example mentioned in the documents - https://neo4j.com/developer/python/#_resources

class HelloWorldExample:

    def __init__(self, uri, user, password):
        self.driver = GraphDatabase.driver(uri, auth=(user, password))

    def close(self):
        self.driver.close()

    def print_greeting(self, message):
        with self.driver.session() as session:
             greeting = session.write_transaction(self._create_and_return_greeting, message)
             print(greeting)

    @staticmethod
    def _create_and_return_greeting(tx, message):
        result = tx.run("CREATE (a:Greeting) "
                    "SET a.message = $message "
                    "RETURN a.message + ', from node ' + id(a)", message=message)
        return result.single()[0]


if __name__ == "__main__":
    greeter = HelloWorldExample("bolt://localhost:7687", "neo4j", "password")
    greeter.print_greeting("hello, world")
    greeter.close()

Error is -

Traceback (most recent call last):
  File "createneodb.py", line 26, in <module>
    greeter.print_greeting("hello, world")
  File "createneodb.py", line 13, in print_greeting
    greeting = session.write_transaction(self._create_and_return_greeting, message)
  File "C:\Users\omras\AppData\Local\Programs\Python\Python37\lib\site-packages\neo4j\work\simple.py", line 435, in write_transaction
    return self._run_transaction(WRITE_ACCESS, transaction_function, *args, **kwargs)
  File "C:\Users\omras\AppData\Local\Programs\Python\Python37\lib\site-packages\neo4j\work\simple.py", line 336, in _run_transaction
    self._open_transaction(access_mode=access_mode, database=self._config.database, metadata=metadata, timeout=timeout)
  File "C:\Users\omras\AppData\Local\Programs\Python\Python37\lib\site-packages\neo4j\work\simple.py", line 271, in _open_transaction
    self._connect(access_mode=access_mode, database=database)
  File "C:\Users\omras\AppData\Local\Programs\Python\Python37\lib\site-packages\neo4j\work\simple.py", line 122, in _connect
    bookmarks=self._bookmarks
  File "C:\Users\omras\AppData\Local\Programs\Python\Python37\lib\site-packages\neo4j\io\__init__.py", line 805, in acquire
    return self._acquire(self.address, timeout)
  File "C:\Users\omras\AppData\Local\Programs\Python\Python37\lib\site-packages\neo4j\io\__init__.py", line 660, in _acquire
    connection = self.opener(address, timeout)
  File "C:\Users\omras\AppData\Local\Programs\Python\Python37\lib\site-packages\neo4j\io\__init__.py", line 789, in opener
    **pool_config
  File "C:\Users\omras\AppData\Local\Programs\Python\Python37\lib\site-packages\neo4j\io\__init__.py", line 340, in open
    connection.hello()
  File "C:\Users\omras\AppData\Local\Programs\Python\Python37\lib\site-packages\neo4j\io\_bolt4.py", line 98, in hello
    self.fetch_all()
  File "C:\Users\omras\AppData\Local\Programs\Python\Python37\lib\site-packages\neo4j\io\__init__.py", line 517, in fetch_all
    detail_delta, summary_delta = self.fetch_message()
  File "C:\Users\omras\AppData\Local\Programs\Python\Python37\lib\site-packages\neo4j\io\_bolt4.py", line 271, in fetch_message
    response.on_failure(summary_metadata or {})
  File "C:\Users\omras\AppData\Local\Programs\Python\Python37\lib\site-packages\neo4j\io\_common.py", line 202, in on_failure
    raise AuthError(message)
neo4j.exceptions.AuthError: {code: None} {message: None}

Details:

The driver object was successfully initialized as well as the session object. However the problem is when calling write_transaction. I am not able to understand the source of the problem.

2

There are 2 answers

0
jstaab On BEST ANSWER

Below is a partial answer — it will work to set your password initially, but you may be unable to change it.

  • To set the password initially from the command line, run sudo /usr/bin/neo4j-admin set-initial-password YOUR_PASSWORD_HERE.
  • Alternatively, you can run a curl request against the neo4j server as described here.
  • If you've already set your password, you may need to remove the auth.ini file (more on that here).
  • Restart the server using sudo neo4j restart so it will accept your new password. On debian, if you don't use sudo, it will just time out.

Personally, I was able to set my password, but am now unable to change it. I'm not sure if this is a bug, but both the command line and curl reset approaches are reporting success without changing the password, even after a restart.

0
Sharon On

I recently experienced this error, and the cause ended up being an issue with my username/password. I had them wrong in the config file I was referencing. It was confusing because the error didn't appear until the row where I call the .run() method, even though I establish the session earlier in the code.