nats-io/nats-server · error

failed to write ocsp status: %w

Error message

failed to write ocsp status: %w

What it means

getRemoteStatus: after successfully fetching and parsing a fresh OCSP response, persisting it to the local cache under <store_dir>/jetstream/ocsp failed; the write error is wrapped with this context.

Source

Thrown at server/ocsp.go:260

				err = errors.Join(postErr, getErr)
			}
		}
	}
	if err != nil {
		return nil, nil, fmt.Errorf("exhausted ocsp servers: %w", err)
	}
	resp, err := ocsp.ParseResponse(raw, oc.Issuer)
	if err != nil {
		return nil, nil, fmt.Errorf("failed to get remote status: %w", err)
	}
	if err := validOCSPResponse(resp); err != nil {
		return nil, nil, err
	}

	if storeDir := opts.StoreDir; storeDir != _EMPTY_ {
		key := fmt.Sprintf("%x", sha256.Sum256(oc.Leaf.Raw))
		if err := oc.writeOCSPStatus(storeDir, key, raw); err != nil {
			return nil, nil, fmt.Errorf("failed to write ocsp status: %w", err)
		}
	}

	oc.mu.Lock()
	oc.raw = raw
	oc.resp = resp
	oc.mu.Unlock()

	return raw, resp, nil
}

func (oc *OCSPMonitor) run() {
	s := oc.srv
	s.mu.Lock()
	quitCh := s.quitCh
	s.mu.Unlock()

	var doShutdown bool

View on GitHub (pinned to 3a66a489d2)

Solutions

  1. Check disk space and permissions on the store_dir
  2. Retry on the next monitor cycle once the filesystem issue is fixed
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at server/ocsp.go:260 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of nats-io/nats-server@3a66a489d2 (2026-09-02). Data as JSON: /api/errors/ccb28cd37c0bba81. Report an issue: GitHub.