Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Troubleshooting – Makechain
Skip to content

Troubleshooting

Common errors and their solutions.

Build errors

protoc not found

error: failed to run custom build command for `makechain`
  Could not find `protoc` installation

Install protoc:

# macOS
brew install protobuf
 
# Ubuntu / Debian
sudo apt install protobuf-compiler
 
# Verify
protoc --version

Rust nightly required

error[E0554]: `#![feature]` may not be used on the stable release channel

Nightly 1.93+ required:

rustup install nightly
rustup default nightly

Commonware version mismatch

error: failed to select a version for `commonware-consensus`

Ensure Cargo.lock is up to date:

cargo update
cargo build

Node startup

Port already in use

Error: Address already in use (os error 48)

The default ports are 50051 (gRPC) and 50052 (p2p). Check for conflicting processes:

lsof -i :50051
lsof -i :50052

Kill the conflicting process or configure different ports via CLI flags.

Invalid network flag

Error: invalid network "prod" — expected devnet, testnet, or mainnet

Valid values: devnet, testnet, mainnet.

Validator key file errors

Error: failed to read validator key file

The file must contain a 64-character hex-encoded Ed25519 seed. For development, use --seed instead:

cargo run --bin node -- --seed 1

Message submission errors

These errors are returned synchronously by SubmitMessage (pipeline stages 1–5). See the submit pipeline for the full flow.

Envelope verification (stage 1)

ErrorCauseSolution
Hash mismatchBLAKE3(data) != hashRecompute hash from serialized MessageData
Invalid signatureEd25519 verification failedEnsure you sign the hash bytes with the correct key

Structural validation (stage 2)

ErrorCauseSolution
missing message dataMessageData is nullPopulate the data field
mid must be non-zeromid field is 0Set mid to your Make ID
timestamp must be non-zerotimestamp is 0Set timestamp to current epoch seconds
missing message bodyNo oneof body variant setSet the appropriate body for your message type
project name is emptyEmpty name in PROJECT_CREATEProvide a non-empty project name
project name too longName exceeds 100 charactersShorten the project name
project_id must be 32 bytesWrong-length project IDUse the 32-byte BLAKE3 hash of the creation message
ref_update: missing ref_nameEmpty ref nameProvide a ref name (for example, refs/heads/main)
ref_update: new_hash must be 32 bytesWrong-length commit hashUse a 32-byte BLAKE3 hash
commit_bundle: empty commits listNo commits in bundleInclude at least one commit
commit_bundle: too many commitsMore than 1,000 commitsSplit into multiple bundles

Signer authorization (stage 3)

ErrorCauseSolution
Signer not registeredThe signing key is not registered for the given midSubmit a KEY_ADD message first

Network validation (stage 4)

ErrorCauseSolution
Network mismatchMessage network differs from node's networkSet the message network to match (for example, devnet)

Mempool admission (stage 5)

ErrorCauseSolution
Duplicate messageMessage hash already in mempoolThis message was already submitted — no action needed
Mempool fullMempool at capacity (100,000)Wait and retry
Timestamp too oldMessage older than 10 minutesUse a current timestamp
Timestamp too far in futureMessage more than 30 seconds aheadFix client clock skew

State errors (execution stage)

These errors occur during block execution (stage 6) and cause the message to be silently dropped. They appear in node logs but are not returned to the submitter.

ErrorCauseSolution
UnknownAccountmid has no registered accountRegister a key first via KEY_ADD
UnknownKeySigning key not found for midRegister the key with KEY_ADD
InsufficientScopeKey scope too low for the operationUse a key with the required scope (for example, OWNER for PROJECT_REMOVE)
NotProjectOwnerOperation requires project ownershipOnly the project creator can perform this action
NotProjectAdminOperation requires admin accessThe mid needs owner or collaborator access with admin role
NotProjectWriterOperation requires write accessAdd the mid as a collaborator or use the owner's key
ForkAccessDeniedForking a private project without read accessRequest collaborator access from the project owner
AgentProjectDeniedAGENT key not authorized for this projectAdd the project to the key's allowed_projects list
ProjectNotFoundproject_id does not existVerify the project ID (BLAKE3 hash of the creation message)
ProjectRemovedProject has been removedThe project was deleted via PROJECT_REMOVE
ProjectArchivedProject is read-onlyArchived projects do not accept writes. Create a new project or fork
StorageLimitExceededAccount hit the project limitEach storage unit allows 10 projects
RefLimitExceededProject hit the 200-ref limitDelete unused refs before creating new ones
CollaboratorLimitExceededProject hit the 50-collaborator limitRemove inactive collaborators
KeyLimitExceededAccount hit the 100-key limitRemove unused keys
VerificationLimitExceededAccount hit the 50-verification limitRemove old verifications
ProjectNameTakenAnother project by this account uses the same nameChoose a different name
InvalidClaimSignatureVerification signature is invalidRe-sign the claim message makechain:verify:<mid> with your external key
RefCasMismatchRef has been updated since you last read itRe-read the ref, update old_hash, and retry
RefNotFoundRef does not exist in the projectCheck the ref name spelling
CommitNotFoundReferenced commit hash not in the projectPush the commit bundle before updating the ref
NotFastForwardNew commit is not a descendant of the current ref targetRebase or merge before pushing
RefNonceMismatchRef nonce does not match expected valueRe-read the ref to get the current nonce
AlreadyExistsAdding an entry that already exists in a 2P setThe resource (collaborator, key, verification) is already active
AlreadyRemovedRemoving an entry that is already removedNo action needed — the resource is already gone

API errors

gRPC status codes returned by query endpoints:

gRPC StatusApiError VariantCommon triggers
NOT_FOUNDNotFoundInvalid project ID, unknown account, missing ref
INVALID_ARGUMENTInvalidArgumentMalformed hex string, invalid cursor, limit out of range
INTERNALInternalState lock failure, unexpected storage error
INTERNALState(...)State errors propagated from the execution layer