---
name: "rpc_svc_err"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/rpc_svc_err"
---

# rpc\_svc\_err(3)

library routines for server side remote procedure call errors

## NAME

**rpc\_svc\_err**, **svcerr\_auth**, **svcerr\_decode**, **svcerr\_noproc**, **svcerr\_noprog**, **svcerr\_progvers**, **svcerr\_systemerr**, **svcerr\_weakauth** – library routines for server side remote procedure call errors

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<rpc/rpc.h\>**

*void*\

**svcerr\_auth**(*SVCXPRT \*xprt*, *enum auth\_stat why*);

*void*\

**svcerr\_decode**(*SVCXPRT \*xprt*);

*void*\

**svcerr\_noproc**(*SVCXPRT \*xprt*);

*void*\

**svcerr\_noprog**(*SVCXPRT \*xprt*);

*void*\

**svcerr\_progvers**(*SVCXPRT \*xprt*, *rpcvers\_t low\_vers*, *rpcvers\_t high\_vers*);

*void*\

**svcerr\_systemerr**(*SVCXPRT \*xprt*);

*void*\

**svcerr\_weakauth**(*SVCXPRT \*xprt*);

## DESCRIPTION

These routines are part of the RPC library which allows C language programs to make procedure calls on other machines across the network.

These routines can be called by the server side dispatch function if there is any error in the transaction with the client.

## Routines

See [rpc(3)](/rpc/3.md) for the definition of the *SVCXPRT* data structure.

- **svcerr\_auth**()

  Called by a service dispatch routine that refuses to perform a remote procedure call due to an authentication error.

- **svcerr\_decode**()

  Called by a service dispatch routine that cannot successfully decode the remote arguments (see **svc\_getargs**() in [rpc\_svc\_reg(3)](/rpc_svc_reg/3.md)).

- **svcerr\_noproc**()

  Called by a service dispatch routine that does not implement the procedure number that the caller requests.

- **svcerr\_noprog**()

  Called when the desired program is not registered with the RPC package. Service implementors usually do not need this routine.

- **svcerr\_progvers**()

  Called when the desired version of a program is not registered with the RPC package. The *low\_vers* argument is the lowest version number, and *high\_vers* is the highest version number. Service implementors usually do not need this routine.

- **svcerr\_systemerr**()

  Called by a service dispatch routine when it detects a system error not covered by any particular protocol. For example, if a service can no longer allocate storage, it may call this routine.

- **svcerr\_weakauth**()

  Called by a service dispatch routine that refuses to perform a remote procedure call due to insufficient (but correct) authentication arguments. The routine calls **svcerr\_auth**(*xprt*, *AUTH\_TOOWEAK*).

## SEE ALSO

[rpc(3)](/rpc/3.md), [rpc\_svc\_calls(3)](/rpc_svc_calls/3.md), [rpc\_svc\_create(3)](/rpc_svc_create/3.md), [rpc\_svc\_reg(3)](/rpc_svc_reg/3.md)
