Photoshop 26.1.1 - ExtendScript Error 8800: "Make" command unavailable for Layer Mask creation
Hi everyone,
I'm encountering a persistent issue with ExtendScript in Photoshop 26.1.1 when trying to create a layer mask. Any attempt to add a "Reveal All" layer mask to a newly created layer via Action Manager (executeAction) results in the following
error:
Error 8800: A general Photoshop error occurred. This function may not be available in this version of Photoshop.
- The 'Make' command is currently unavailable.
This happens consistently, even with a very minimal test script. My Photoshop version is 26.1.1 (Please specify your Operating System here, e.g., on macOS Sonoma 14.5 / on Windows 11 Pro 23H2).
Goal of the original script:
My initial goal was to create a script that adds a "grain layer" (a new layer filled with 50% gray, noise filter applied, and set to Overlay blend mode) and then add a layer mask to it, which would later be modified using "Apply Image". However, I'm stuck at the very first step of adding the layer mask.
Minimal Test Script that reproduces the error:
The following simple script consistently fails with Error 8800 when trying to execute the "Make" event for the layer mask:
#target photoshop
if (app.documents.length > 0) {
var doc = app.activeDocument;
var testLayer = null;
try {
// 1. Create a new layer
testLayer = doc.artLayers.add();
testLayer.name = "Test Mask Layer";
// alert("New layer 'Test Mask Layer' created. Attempting to add mask..."); // For debugging
// 2. Attempt to add a "Reveal All" layer mask
var idMk = charIDToTypeID("Mk "); // "Mk" with two trailing spaces
var descMask = new ActionDescriptor();
var refChannel_Null = new ActionReference();
refChannel_Null.putClass(charIDToTypeID("Chnl"));
descMask.putReference(charIDToTypeID("null"), refChannel_Null);
var refChannel_At = new ActionReference();
refChannel_At.putEnumerated(charIDToTypeID("Chnl"), charIDToTypeID("Chnl"), charIDToTypeID("Msk "));
descMask.putReference(charIDToTypeID("At "), refChannel_At); // "At" with two trailing spaces
descMask.putEnumerated(charIDToTypeID("Usng"), charIDToTypeID("UsrM"), charIDToTypeID("RvlA")); // Using UserMask, RevealAll
executeAction(idMk, descMask, DialogModes.NO); // This line triggers Error 8800
// alert("Layer mask added successfully."); // This is never reached
} catch (e) {
alert("Error during test mask creation:\n" + e); // This shows the Error 8800
} finally {
// Optionally remove the test layer
// if (testLayer) {
// try { testLayer.remove(); } catch (e2) {}
// }
}
} else {
alert("Please open a document before running this script.");
}
Things I've tried:
* Using charIDToTypeID("Mk ") for the "Make" event as shown in the script above (this is common in ScriptingListener logs).
* Using stringIDToTypeID("make") for the event, and corresponding stringIDToTypeID for keys like "channel", "mask", "at", "using", "userMask", "revealAll". This also resulted in the same Error 8800.
The error occurs specifically when executeAction is called to create the mask. The layer "Test Mask Layer" (or "Grain Layer" in my original script) is successfully created and is the active layer.
Questions for the community:
* Is this a known issue, bug, or regression in Photoshop 26.1.1 (or recent Photoshop 2025 releases)?
* Are there any documented changes to how layer masks should be programmatically created via Action Manager in this version?
* If the standard "Make" event for layer masks is indeed "unavailable" as the error suggests, are there any confirmed working alternative methods or workarounds in ExtendScript to add a "Reveal All" layer mask to a layer in Photoshop 26.1.1?
Any insights or suggestions would be greatly appreciated. I've previously encountered difficulties scripting complex adjustment layer properties (like applying 3D LUTs to Color Lookup layers) which felt like API limitations, and I'm concerned this might be a similar situation with a more fundamental feature.
Thank you for your time and help!
