Neo4j Database is locked in ReadOnly mode

Hello

I have Neo4j Enterprise Edition version 5.11.0.

My team was running some cypher scripts against it and suddenly we started to get the following error:

Neo.ClientError.General.WriteOnReadOnlyAccessDatabase
No write operations are allowed on this database. The database is in read-only mode on this Neo4j instance.

I have a couple of questions about it:

1.- Why did the database lock itself into read-only mode?
2.- How can I revert this change? Can I do this from neo4j Browser?

Thanks,

Like Miguel, we are having the same issue after installing version 5.19.0. For two years we have been reading/writing with wild abandon on our standalone server. We seem to have lost the right to write using Neo4j Browser. The strange thing is we can still write through cypher-shell and code. That said, the Browser is a foundational tool in our Neo4j development.

Even with a vanilla install locally of v 5.19.0 - installed through Desktop - I am still locked out of write ability.

Is anyone else experiencing similar loss of write permissions? I can't find any diagnostic information inside or outside Neo4j Community. Could this be a bug?

Henry Bowers
Everstream Analytics

@henry_bowers @miguelgoicocheadeb

can't explain how you ended up this way but

describes how a database may be read only and how to revert.

Has any of this been tried?

Hi @dana_canzano . Thanks for quick response. On our test server all three databases indicate their mode is READ-WRITE:

╒═════════╀══════════╀═══════╀════════════╀════════════════╀═════════╀══════╀═══════════════╀═════════════╀═════════════╀═══════╀═════╀════════════╕
β”‚name     β”‚type      β”‚aliasesβ”‚access      β”‚address         β”‚role     β”‚writerβ”‚requestedStatusβ”‚currentStatusβ”‚statusMessageβ”‚defaultβ”‚home β”‚constituentsβ”‚
β•žβ•β•β•β•β•β•β•β•β•β•ͺ══════════β•ͺ═══════β•ͺ════════════β•ͺ════════════════β•ͺ═════════β•ͺ══════β•ͺ═══════════════β•ͺ═════════════β•ͺ═════════════β•ͺ═══════β•ͺ═════β•ͺ════════════║
β”‚"cdctest"β”‚"standard"β”‚[]     β”‚"read-write"β”‚"localhost:7687"β”‚"primary"β”‚true  β”‚"online"       β”‚"online"     β”‚""           β”‚false  β”‚falseβ”‚[]          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"neo4j"  β”‚"standard"β”‚[]     β”‚"read-write"β”‚"localhost:7687"β”‚"primary"β”‚true  β”‚"online"       β”‚"online"     β”‚""           β”‚true   β”‚true β”‚[]          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"system" β”‚"system"  β”‚[]     β”‚"read-write"β”‚"localhost:7687"β”‚"primary"β”‚true  β”‚"online"       β”‚"online"     β”‚""           β”‚false  β”‚falseβ”‚[]          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

If I try any command that would alter a database I get the read-only mode error, including ALTER DATABASE commands.

At this moment you may be wondering "if Henry can't write to a database at all, how the heck did he create cdctest? That's the extra-strange part of this issue: I have full permissions when interacting with neo4j through every interface except the Neo4j Browser when I open it through Neo4j Desktop. Opening Browser directly in my web browser works. cypher-shell works. I haven't tried python yet but I imagine the outcome will be positive there too.

There are two unique aspects of this problematic install compared to our norm (we have been using neo4j for almost three years both in dev and production without anything like this issue):

  1. I installed 5.19.0 on the same server we have 5.15.0 and alternated running one or the other. I installed 5.19 to /opt/neo4j, whereas 5.15 lives in a subdirectory of the user home directory.
  2. I enabled CDC (the point of this exercise) .

It is certainly possible that the voodoo came about due to human error. We are not as blocked as I had thought at time of my first post, since we can use the Browser outside Desktop. But what could have caused my local Desktop installation to also throw read-only access mode exceptions for a server I never touched with 5.19 or CDC?

Would it hurt if I reinstalled Neo4j Desktop, wipe the slate clean? Or - before I do - any other avenues of root cause seeking I might try?

@henry_bowers
Check left sidebar-frame of the browser , gear Icon and field named Use read transactions for cypher queries. and to which this setting really only applies if in a cluster. Is your Neo4j running in a cluster?

1 Like

You nailed it @dana_canzano . Human error indeed. I must have flipped the switch accidentally while editing other settings.

I will wear my public embarrassment with pride, and thank you profusely for figuring out my problem. I imagine we would have figured it out eventually, but you just saved me from days of continued self-hamstringing.

Cheers,

Henry