octobercms/october · warning · ApplicationException
The property name is not specified.
Error message
The property name is not specified.
What it means
HasPropertyOptions::onInspectableGetOptions is the AJAX handler the backend inspector calls to fetch dynamic dropdown options for a widget property. It reads the inspectorProperty POST parameter and trims it; if nothing remains it throws this ApplicationException. The property name is how getPropertyOptions() dispatches to the right options method, so an empty value cannot be processed.
Source
Thrown at modules/dashboard/widgets/dash/HasPropertyOptions.php:24
use Dashboard\Classes\ReportDataSourceBase;
use ApplicationException;
/**
* HasPropertyOptions concern
*/
trait HasPropertyOptions
{
/**
* onInspectableGetOptions
*/
public function onInspectableGetOptions()
{
// Disable asset broadcasting
$this->flushAssets();
$property = trim(post('inspectorProperty'));
if (!$property) {
throw new ApplicationException('The property name is not specified.');
}
$options = $this->getPropertyOptions($property);
// Convert to array to retain the sort order in JavaScript
$optionsArray = [];
foreach ((array) $options as $value => $title) {
$optionsArray[] = ['value' => $value, 'title' => Lang::get($title)];
}
return [
'options' => $optionsArray
];
}
/**
* getPropertyOptions returns options for multi-option properties (drop-downs, etc.)
* @param string $property Specifies the property nameView on GitHub (pinned to b608633a7e)
Solutions
- Make sure the inspector field definition includes the property context so the framework posts inspectorProperty (e.g. the field is defined under properties with its name intact).
- In custom JS, append the property name: request('onInspectableGetOptions', { inspectorProperty: 'myProperty' }).
- Implement getPropertyOptions($property) on the widget so non-empty property names resolve; empty ones still fail fast by design.
- Check the network request payload for the inspectorProperty key before debugging deeper handler logic.
Example fix
// before (custom JS)
$.request('onInspectableGetOptions', { data: {} });
// after
$.request('onInspectableGetOptions', { data: { inspectorProperty: 'statusOptions' } }); Defensive patterns
Strategy: validation
Validate before calling
$property = trim((string) post('inspectorProperty'));
if ($property === '') {
throw new \ValidationException(['inspectorProperty' => 'Property name is required']);
} Try / catch
try {
$options = $widget->onInspectableGetOptions();
} catch (\ApplicationException $e) {
// inspector fired without a property: log and return empty options to the picker
return ['options' => []];
} Prevention
- Always pair an options handler with the property name in inspector field definitions.
- In custom inspector components, include inspectorProperty in every options request.
- Test inspector dropdowns after upgrading the backend module.
When it happens
Trigger: An inspector field configured with options: 'onInspectableGetOptions' but the AJAX request carries no inspectorProperty parameter; a custom inspector Vue component that invokes the options endpoint without passing the property name; whitespace-only property value from a broken form binding.
Common situations: Custom dashboard/report widget with a dropdown whose inspector definition references a handler but the request builder omits the property key; upgrading the backend where the inspector payload format changed; copying an options handler pattern into a new component without wiring the property attribute.
Related errors
- Trying to get selected row without a popup reference.
- Custom widget class [{$widgetClass}] is not set.
- Custom widget class [{$widgetClass}] is not set.
- Object list value should be an object. Property: ${this.prop
- Values not found for the selected row.
AI-assisted analysis of octobercms/october@b608633a7e (2026-08-21).
Data as JSON: /api/errors/d77deab5c5aa4c0a.
Report an issue: GitHub.