XTLS/Xray-core · error

select padding start delay: %w

Error message

select padding start delay: %w

What it means

Error "select padding start delay: %w" thrown in XTLS/Xray-core.

Source

Thrown at transport/internet/finalmask/xmc/padding.go:142

		if i > 0 && turn.direction == schedule[i-1].direction {
			return fmt.Errorf("padding turns %d and %d have the same direction", i-1, i)
		}
	}
	return nil
}

func writePaddingTurn(w io.Writer, turn paddingTurn, prefixLength int) error {
	return writePaddingTurnWithSleep(w, turn, prefixLength, time.Sleep)
}

func writePaddingTurnWithSleep(w io.Writer, turn paddingTurn, prefixLength int, sleep func(time.Duration)) error {
	return writePaddingTurnWithBuffer(w, turn, prefixLength, sleep, nil)
}

func writePaddingTurnWithBuffer(w io.Writer, turn paddingTurn, prefixLength int, sleep func(time.Duration), reusableBuffer *[]byte) error {
	startDelay, err := randomPaddingDelay(turn.startDelay)
	if err != nil {
		return fmt.Errorf("select padding start delay: %w", err)
	}
	if startDelay > 0 {
		sleep(startDelay)
	}

	targetLength, chunks, delays, err := selectPaddingVariant(turn, prefixLength)
	if err != nil {
		return err
	}
	recordLength := targetLength - prefixLength
	if recordLength < 1 {
		return fmt.Errorf("target length %d leaves an invalid record length %d", targetLength, recordLength)
	}

	encodedLength := Varint(recordLength)
	var header bytes.Buffer
	if err = encodedLength.writeTo(&header); err != nil {
		return fmt.Errorf("write padding header: %w", err)

View on GitHub (pinned to 7d214f8b09)

When it happens

Trigger: Thrown at transport/internet/finalmask/xmc/padding.go:142 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of XTLS/Xray-core@7d214f8b09 (2026-08-15). Data as JSON: /api/errors/c46288040acad8c8. Report an issue: GitHub.