I am upgrading some tooling from FoundationDB 7.2 to 7.3, and I am having this error with fdbcli:
ERROR: Failed to load a required FDB API function. (2204)
It works however if I call fdbcli --api-version 720 instead of just fdbcli.
I imagine I must have some leftovers of 7.2, but where should I look? The only reference I found from this error is in the FDB source code: Code search results · GitHub so it doesn’t seem to be raised often.
Can I get more details about the real meaning of this error, what kind of issue does it usually reflect?
I think you are trying to use fdbcli in 7.3 with a cluster in 7.2, which cannot be done because of the wire protocol compatibility:
FDB has an internal wire protocol for communication between server processes that is not guaranteed to be stable across versions. Patch releases for the same minor version are protocol-compatible, but different minor versions are not protocol-compatible.
If you want to upgrade the tooling, you need to upgrade everything. There is procedures available here that you can follow.
I’m actually not really performing an upgrade of a cluster, I’m spinning up a new 7.3 cluster after changing all my k8s build scripts to support it from 7.2 (which is why I’m thinking of possible “leftovers”).
I confirm that all nodes are in 7.3 which is why I don’t understand why I’m seeing this error. Moreoever, when I had different mixed versions in the past, instead of failing fdbcli with this message, fdbcli was working but showing the database as “unavailable” with the list of nodes unreachable because of wrong version.