owasp-amass/amass · error
failed to parse rigid_boundaries setting, value is not a boo
Error message
failed to parse rigid_boundaries setting, value is not a boolean
What it means
loadRigidSettings expects the optional 'rigid_boundaries' config option to be a Go bool. If the key is present but holds any other type (string, number), the type assertion fails and this error is returned instead of silently coercing.
Source
Thrown at config/rigid.go:19
// Copyright © by Jeff Foley 2017-2026. All rights reserved.
// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
// SPDX-License-Identifier: Apache-2.0
package config
import "fmt"
func (c *Config) loadRigidSettings(cfg *Config) error {
// retrieve the rigid_boundaries option from the configuration
rigidinterface, ok := c.Options["rigid_boundaries"]
if !ok {
// "rigid_boundaries" not found in options, so nothing to do here
return nil
}
rigid, ok := rigidinterface.(bool)
if !ok {
return fmt.Errorf("failed to parse rigid_boundaries setting, value is not a boolean")
}
c.Rigid = rigid
return nil
}
View on GitHub (pinned to 79299dce87)
Solutions
- Change the value to an unquoted boolean: rigid_boundaries: true (YAML) or "rigid_boundaries": true (JSON)
- If set programmatically, pass a bool (true/false), not a string or int
- Check the code that builds the options map and ensure it does not stringify config values
Example fix
// before options["rigid_boundaries"] = "true" // after options["rigid_boundaries"] = true
Defensive patterns
Strategy: type-guard
Validate before calling
v, ok := options["rigid_boundaries"]; if ok { if _, isBool := v.(bool); !isBool { return fmt.Errorf("rigid_boundaries must be bool, got %T", v) } } Type guard
func isBool(v interface{}) bool { _, ok := v.(bool); return ok } Try / catch
if err := loadRigidSettings(); err != nil { return fmt.Errorf("config option rigid_boundaries: %w", err) } Prevention
- Never quote booleans in YAML/JSON configs
- Cast types explicitly when building option maps
- Schema-validate config files at startup
- Watch for float64 leakage from JSON decoding
When it happens
Trigger: The config map contains "rigid_boundaries": "true" (string) or 1 (int) instead of a real boolean true/false, typically from a YAML/JSON config parsed into interface{} values or programmatic options built with the wrong type.
Common situations: Hand-edited config files quoting boolean values; generating config from templates that stringify everything; calling the settings API with untyped maps where JSON numbers become float64.
Understand the failure class
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
Related errors
- resolvers section is not a list
- error mapping configuration settings to internal values: %v
- failed to parse active setting, value is not a boolean
- bruteforce enabled is not a bool
- alterations enabled is not a bool
AI-assisted analysis of owasp-amass/amass@79299dce87 (2026-09-06).
Data as JSON: /api/errors/938df29eeb500da3.
Report an issue: GitHub.