dotnet/BenchmarkDotNet · error · ArgumentOutOfRangeException
{DefaultMaxParameterColumnWidth} is the minimum.
Error message
{DefaultMaxParameterColumnWidth} is the minimum. What it means
Thrown by the SummaryStyle constructor when maxParameterColumnWidth is set below DefaultMaxParameterColumnWidth. SummaryStyle controls how benchmark summary tables are rendered, including the maximum width of parameter columns. The guard `maxParameterColumnWidth < DefaultMaxParameterColumnWidth` prevents values that would truncate or break the column layout.
Source
Thrown at src/BenchmarkDotNet/Reports/SummaryStyle.cs:38
public bool PrintUnitsInContent { get; }
public bool PrintZeroValuesInContent { get; }
public int MaxParameterColumnWidth { get; }
public SizeUnit? SizeUnit { get; }
internal SizeUnit CodeSizeUnit { get; }
public TimeUnit? TimeUnit { get; }
public CultureInfo CultureInfo { get; }
public RatioStyle RatioStyle { get; }
public TextJustification TextColumnJustification { get; }
public TextJustification NumericColumnJustification { get; }
public SummaryStyle(CultureInfo? cultureInfo, bool printUnitsInHeader, SizeUnit? sizeUnit, TimeUnit? timeUnit, bool printUnitsInContent = true,
bool printZeroValuesInContent = false, int maxParameterColumnWidth = DefaultMaxParameterColumnWidth, RatioStyle ratioStyle = RatioStyle.Value,
TextJustification textColumnJustification = TextJustification.Left, TextJustification numericColumnJustification = TextJustification.Right)
{
if (maxParameterColumnWidth < DefaultMaxParameterColumnWidth)
throw new ArgumentOutOfRangeException(nameof(maxParameterColumnWidth), $"{DefaultMaxParameterColumnWidth} is the minimum.");
CultureInfo = cultureInfo ?? DefaultCultureInfo.Instance;
PrintUnitsInHeader = printUnitsInHeader;
PrintUnitsInContent = printUnitsInContent;
SizeUnit = sizeUnit;
TimeUnit = timeUnit;
MaxParameterColumnWidth = maxParameterColumnWidth;
RatioStyle = ratioStyle;
CodeSizeUnit = SizeUnit.B;
PrintZeroValuesInContent = printZeroValuesInContent;
TextColumnJustification = textColumnJustification;
NumericColumnJustification = numericColumnJustification;
}
public SummaryStyle WithTimeUnit(TimeUnit timeUnit)
=> new SummaryStyle(CultureInfo, PrintUnitsInHeader, SizeUnit, timeUnit, PrintUnitsInContent, PrintZeroValuesInContent, MaxParameterColumnWidth,
RatioStyle, TextColumnJustification, NumericColumnJustification);
View on GitHub (pinned to b515068b61)
Solutions
- Use a value >= DefaultMaxParameterColumnWidth (check the constant value in the library).
- Use SummaryStyle.Default and modify only the properties you need via with-expressions or the builder API.
- If you need narrower columns, accept the default minimum and shorten parameter names/values instead.
Example fix
// before
var style = new SummaryStyle(
cultureInfo: CultureInfo.InvariantCulture,
printUnitsInHeader: false,
sizeUnit: null,
timeUnit: null,
maxParameterColumnWidth: 5);
// after
var style = new SummaryStyle(
cultureInfo: CultureInfo.InvariantCulture,
printUnitsInHeader: false,
sizeUnit: null,
timeUnit: null,
maxParameterColumnWidth: SummaryStyle.DefaultMaxParameterColumnWidth); Defensive patterns
Strategy: validation
Validate before calling
int width = Math.Max(requestedWidth, SummaryStyle.DefaultMaxParameterColumnWidth); var style = new SummaryStyle(..., maxParameterColumnWidth: width);
Prevention
- Use SummaryStyle.Default as the base and modify individual properties rather than constructing from scratch.
- Check the value of DefaultMaxParameterColumnWidth constant before passing a custom width.
- Clamp user-provided width values to the minimum before construction.
When it happens
Trigger: Constructing a new SummaryStyle with maxParameterColumnWidth set to a value smaller than the library default constant, e.g. new SummaryStyle(..., maxParameterColumnWidth: 5) when DefaultMaxParameterColumnWidth is larger.
Common situations: Trying to make output more compact for narrow terminals or logs by reducing column width below the floor. Copying a config from an older version where the default was smaller.
Related errors
AI-assisted analysis of dotnet/BenchmarkDotNet@b515068b61 (2026-08-13).
Data as JSON: /api/errors/42fa1b2fd09b5d12.
Report an issue: GitHub.