dotnet/runtime · error
Option : ' ' missing property value
Error message
Option %s: '%s' missing property value
What it means
Printed at src/coreclr/hosts/corerun/corerun.cpp:804 when a -p/--property argument is present but does not contain an '=' delimiter, so no value can be split from the key. corerun requires the `<key>=<value>` form.
Solutions
- Write the property as KEY=VALUE with no spaces around '='.
- Quote the whole token if the value contains spaces: `-p "FancyProp=/usr/first last/root"`.
- Double-check shell quoting/escaping that might split the token.
Example fix
// before corerun -p System.GC.Server true MyApp.dll // after corerun -p System.GC.Server=true MyApp.dll
Defensive patterns
Strategy: validation
Validate before calling
// Verify each property token contains '='
bool property_form_ok(int argc, char** argv) {
for (int i=1;i<argc;i++) {
if (!strcmp(argv[i],"-p") || !strcmp(argv[i],"--property")) {
if (i+1>=argc) return false;
if (!strchr(argv[i+1],'=')) return false;
}
}
return true;
} Prevention
- Write properties as KEY=VALUE with no surrounding spaces.
- Quote tokens whose value contains spaces.
- Shell-escape tokens to avoid splitting on '='.
When it happens
Trigger: Triggered when the token after -p has no '=' (prop.find('=') returns npos). E.g. `corerun -p System.GC.Server true MyApp.dll`.
Common situations: Using a space instead of '=', forgetting the equals sign, or shell-quoting that strips the '='.
Related errors
- Option : missing property
- Option : invalid form
- Option : missing .env file path
- Option : missing path
- Option : missing shared library path
AI-assisted analysis of dotnet/runtime@60108ba66e (2026-08-10).
Data as JSON: /api/errors/a3fbecbd62683355.
Report an issue: GitHub.
Appendix: source
Thrown at src/coreclr/hosts/corerun/corerun.cpp:804
{
pal::fprintf(stderr, W("Option %s: missing path\n"), arg);
break;
}
}
else if (pal::strcmp(option, W("p")) == 0 || (pal::strcmp(option, W("property")) == 0))
{
i++;
if (i >= argc)
{
pal::fprintf(stderr, W("Option %s: missing property\n"), arg);
break;
}
string_t prop = argv[i];
size_t delim_maybe = prop.find(W('='));
if (delim_maybe == string_t::npos)
{
pal::fprintf(stderr, W("Option %s: '%s' missing property value\n"), arg, prop.c_str());
break;
}
string_t key = prop.substr(0, delim_maybe);
string_t value = prop.substr(delim_maybe + 1);
config.user_defined_keys.push_back(std::move(key));
config.user_defined_values.push_back(std::move(value));
}
else if (pal::strcmp(option, W("l")) == 0 || (pal::strcmp(option, W("preload")) == 0))
{
i++;
if (i >= argc)
{
pal::fprintf(stderr, W("Option %s: missing shared library path\n"), arg);
break;
}
string_t library = argv[i];View on GitHub (pinned to 60108ba66e)