slimtoolkit/slim · error

unknown sensor mode

Error message

unknown sensor mode

What it means

The sensor entrypoint (app.go) declares errUnknownMode and newExecution/newSensor return it when the sensor is invoked with a mode flag value that doesn't match any known execution mode. It is a fail-fast configuration error.

Source

Thrown at pkg/app/sensor/app.go:97

	enableMondelFlagUsage   = "enable monitor data event logging"
	enableMondelFlagDefault = false
)

var (
	getAppBom            *bool          = flag.Bool("appbom", getAppBomFlagDefault, getAppBomFlagUsage)
	enableDebug          *bool          = flag.Bool("debug", enableDebugFlagDefault, enableDebugFlagUsage)
	logLevel             *string        = flag.String("log-level", logLevelFlagDefault, logLevelFlagUsage)
	logFormat            *string        = flag.String("log-format", logFormatFlagDefault, logFormatFlagUsage)
	logFile              *string        = flag.String("log-file", logFileFlagDefault, logFileFlagUsage)
	sensorMode           *string        = flag.String("mode", sensorModeFlagDefault, sensorModeFlagUsage)
	commandsFile         *string        = flag.String("command-file", commandsFileFlagDefault, commandsFileFlagUsage)
	artifactsDir         *string        = flag.String("artifacts-dir", artifactsDirFlagDefault, artifactsDirFlagUsage)
	lifecycleHookCommand *string        = flag.String("lifecycle-hook", lifecycleHookCommandFlagDefault, lifecycleHookCommandFlagUsage)
	stopSignal           *string        = flag.String("stop-signal", stopSignalFlagDefault, stopSignalFlagUsage)
	stopGracePeriod      *time.Duration = flag.Duration("stop-grace-period", stopGracePeriodFlagDefault, stopGracePeriodFlagUsage)
	enableMondel         *bool          = flag.Bool("mondel", enableMondelFlagDefault, enableMondelFlagUsage)

	errUnknownMode = errors.New("unknown sensor mode")
)

func eventsFilePath() string {
	return filepath.Join(*artifactsDir, "events.json")
}

func init() {
	flag.BoolVar(getAppBom, "b", getAppBomFlagDefault, getAppBomFlagUsage)
	flag.BoolVar(enableDebug, "d", enableDebugFlagDefault, enableDebugFlagUsage)
	flag.StringVar(logLevel, "l", logLevelFlagDefault, logLevelFlagUsage)
	flag.StringVar(logFormat, "f", logFormatFlagDefault, logFormatFlagUsage)
	flag.StringVar(logFile, "o", logFileFlagDefault, logFileFlagUsage)
	flag.StringVar(sensorMode, "m", sensorModeFlagDefault, sensorModeFlagUsage)
	flag.StringVar(commandsFile, "c", commandsFileFlagDefault, commandsFileFlagUsage)
	flag.StringVar(artifactsDir, "e", artifactsDirFlagDefault, artifactsDirFlagUsage)
	flag.StringVar(lifecycleHookCommand, "a", lifecycleHookCommandFlagDefault, lifecycleHookCommandFlagUsage)
	flag.StringVar(stopSignal, "s", stopSignalFlagDefault, stopSignalFlagUsage)
	flag.DurationVar(stopGracePeriod, "w", stopGracePeriodFlagDefault, stopGracePeriodFlagUsage)

View on GitHub (pinned to 81940d17fa)

Solutions

  1. Check the exact mode value against the supported modes in sensor/app.go
  2. Fix the typo or unsupported mode in the deployment args/env
  3. Upgrade/downgrade so sensor mode vocabulary matches the binary version

Example fix

// before
args: ["--mode", "observe"]   // unknown
// after
args: ["--mode", "monitor"]   // supported mode
Defensive patterns

Strategy: validation

Validate before calling

validModes := map[string]bool{"monitor": true /*, others from sensor/app.go */}
if !validModes[sensorMode] { return fmt.Errorf("unsupported sensor mode %q", sensorMode) }

Try / catch

s, err := newSensor(mode, ...)
if err != nil && errors.Is(err, errUnknownMode) {
  return fmt.Errorf("fix --mode value; supported modes: see sensor docs"): %w", err
}

Prevention

When it happens

Trigger: Starting the sensor container/binary with an unrecognized mode value (e.g. misspelled or unsupported --mode / MODE env) passed into newSensor/newExecution.

Common situations: Typo in the sensor mode argument; using a mode from a different version of the tool; hand-edited deployment manifests or Helm values with an invalid mode.

Understand the failure class

Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.

Related errors


AI-assisted analysis of slimtoolkit/slim@81940d17fa (2026-08-31). Data as JSON: /api/errors/2766b14dccd5e64d. Report an issue: GitHub.