ipfs/kubo · error

failed to check pin status for requestid=%q, remote service

Error message

failed to check pin status for requestid=%q, remote service sent unexpected requestid=%q

What it means

While polling a remote pinning service ('ipfs pin remote add' without --background), GetStatusByID returned a PinStatus whose request id differs from the one being polled. The remote service is violating the pinning service API contract by answering about a different request.

Source

Thrown at core/commands/pin/remotepin.go:243

				return err
			}
			if err := api.Swarm().Connect(ctx, *p); err != nil {
				log.Infof("error connecting to remote pin delegate %v : %w", d, err)
			}
		}

		// Block unless --background=true is passed
		if !req.Options[pinBackgroundOptionName].(bool) {
			const pinWaitTime = 500 * time.Millisecond
			var timer *time.Timer
			requestID := ps.GetRequestId()
			for {
				ps, err = c.GetStatusByID(ctx, requestID)
				if err != nil {
					return fmt.Errorf("failed to check pin status for requestid=%q due to error: %v", requestID, err)
				}
				if ps.GetRequestId() != requestID {
					return fmt.Errorf("failed to check pin status for requestid=%q, remote service sent unexpected requestid=%q", requestID, ps.GetRequestId())
				}
				s := ps.GetStatus()
				if s == pinclient.StatusPinned {
					break
				}
				if s == pinclient.StatusFailed {
					return fmt.Errorf("remote service failed to pin requestid=%q", requestID)
				}
				if timer == nil {
					timer = time.NewTimer(pinWaitTime)
				} else {
					timer.Reset(pinWaitTime)
				}
				select {
				case <-timer.C:
				case <-ctx.Done():
					timer.Stop()
					return fmt.Errorf("waiting for pin interrupted, requestid=%q remains on remote service", requestID)

View on GitHub (pinned to 329838acdf)

Solutions

  1. Retry the operation; a flaky or misbehaving service instance may return correct data on the next poll
  2. Inspect the service with 'ipfs pin remote ls --service <name>' to see what request ids it currently reports
  3. If it persists, the service is buggy or incompatible; report to its operator or switch services
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at core/commands/pin/remotepin.go:243 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ipfs/kubo@329838acdf (2026-09-03). Data as JSON: /api/errors/cbca0ef7298b15dc. Report an issue: GitHub.