| Previous | Next |
| EBADMSG | EMULTIHOP |
EPROGUNAVAIL
EPROGUNAVAIL is Darwin’s error for an ONC RPC program that is unavailable at the remote endpoint. It is not a synonym for “cannot connect.” RFC 5531 places PROG_UNAVAIL among the statuses for a call whose RPC message was accepted: the peer understood enough of the request to report that it has not exported the requested program.
An ONC RPC call identifies a program number, a program version, and a procedure number. Program discovery and transport mapping are separate concerns handled by RPC binding services. Consequently, a network path can be healthy while the requested service is absent, registered on a different transport or endpoint, disabled by deployment policy, or replaced by a different implementation.
Collect the identifiers before changing anything
- Record the server address, transport, RPC program number, requested program version, and procedure number from the failing client or trace.
- Check that the client is talking to the intended host and service namespace. A load balancer, stale DNS entry, test endpoint, or port mapping can lead to a reachable but wrong RPC server.
- For installations that expose RPC binding information, query the server’s program mappings with an appropriate administrative tool and compare them with the client’s expected program and transport.
- Verify service registration and server startup on the target host. Retrying without changing the service map does not create an unexported program.
Keep the distinction with nearby RPC results
EPROGUNAVAILmeans the requested program is not exported.EPROGMISMATCHmeans the program is present but the requested version is not supported.EPROCUNAVAILmeans the selected program and version do not implement the requested procedure.
References
- Apple XNU: errno.h
- RFC 5531: PROG_UNAVAIL and RPC call identifiers
- RFC 1833: binding protocols for ONC RPC
- IANA: ONC RPC program-number registry
Looking for a different code? Search another status or error code.