onEdit responds to a user changing a spreadsheet value. A formula recalculation, script write, or API update does not automatically behave like that user edit.
Identify the event that actually occurred
Confirm whether a person edited a cell, a script called setValue, an API changed data, or a formula’s result changed. Google explicitly states that script executions and API requests do not cause ordinary edit triggers to run.
Running the event handler manually in the editor also does not supply the normal event object automatically. A function relying on e.range needs a real event or a deliberately constructed test harness.
Check trigger type and restrictions
A simple onEdit has limited authorization and a short execution limit. It does not run in read-only mode and is not suitable for arbitrary authenticated cross-file operations.
An installable edit trigger can use authorized services but runs as its creator and still follows event restrictions. A change trigger responds to structural changes and is not interchangeable with a value-edit handler.
Test a supported small edit
Use an approved test cell and make one manual value change. Inspect execution history and a minimal safe event log. Check whether the handler intentionally filters for another tab or range.
Google notes that simple onEdit queues only a small number of events, so it should not be treated as a guaranteed high-volume event pipeline. For API-driven work, call shared processing logic explicitly from that workflow instead of expecting an edit event. Verify the intended output before enabling broader automation.
References
- Simple Triggers | Apps Script | Google for Developers
- Installable Triggers | Apps Script | Google for Developers
Reviewed against the linked official product guidance on November 3, 2026. Features, limits, screen labels, and access can vary by account, platform, region, and organization policy.