Why this happens
A text layer switched off in Photoshop is usually a parked alternative: a second language, a price, a name. It survives the upload as a slot and waits for you to fill it per render. A hidden smart object is not offered as a slot at all, sosmart_objects leaves it out and it does not render.
This is confusing because:
- Both look the same in the Layers panel.
- The upload succeeds either way.
- An unfilled text slot is as absent from a render as a missing smart object.
How to identify this issue
The upload response and Retrieve a single PSD mockup both list every smart object and text layer in the template, each with its uuid.Read an existing template back rather than uploading again. A second upload
registers a second template with its own uuids, as
Upload a PSD explains.
- A smart object is missing from
smart_objects, and the upload carries the advisory codePSD_HIDDEN_SMART_OBJECTS. A smart object hidden inside another one follows the same rule: it is missing from thesmart_objectsof its parent smart object’s entry, and it counts toward the same code. - A text layer is in
text_layerswith a usable uuid, and missing only from renders you left it out of. - A uuid outside that list returns
TEXT_LAYER_NOT_FOUND, which Text layers lists, rather than a render. - The file has neither a visible smart object nor a text layer, so the upload
itself fails with
NO_SMART_OBJECTS, which Errors lists. A hidden text layer counts here, so a file that has one does not hit this. GET /api/v1/psd-mockups/{uuid}/layerslists every layer of the template, and a layer switched off in the file showsvisibleas false there.
Solution
A hidden smart object. Make the layer visible in Photoshop and upload again. The new upload returns a fresh template with a newmockup_uuid.
A hidden text layer. Nothing to fix. Send an entry under text_layers and
it renders; leave it out and that line stays hidden. Your source file is
unchanged either way. See
Render a PSD mockup and
Text layers.
A layer that is listed but renders unchanged. A different problem.
TEXT_OVERRIDE_NOT_APPLIED or TEXT_LAYER_NOT_EDITABLE in warnings means the
layer kept its original appearance, and Text layers says
which limit you hit. PSD compatibility covers
what renders as authored.
Hide a layer for one render
A layer the file shows can be left out of one render without changing the template. Read the template’s layers, then name the ones to leave out inhidden_layers on
Render a PSD mockup.
GET /api/v1/psd-mockups/{uuid}/layers returns every layer nested the way
Photoshop’s Layers panel shows it, front-most first, each with its uuid,
name, kind, visible and children. An artboard has kind set to
artboard, and its own layers are listed right before it at the top level
rather than as its children. A smart object whose contents hold
layers you can fill lists those layers as its children, so a layer inside a
smart object can be left out too. A smart object, text layer or group carries
the same uuid it has in smart_objects, text_layers and group_layers, and
reading the list costs no credits.
Layers response, shortened
- Hiding a group hides every layer inside it, and a layer clipped to a hidden layer is hidden with it, as in Photoshop.
- A layer hidden inside a smart object’s contents is hidden in every copy of that smart object.
- One render takes up to 50 entries, and a uuid listed twice counts once.
hidden_layersworks on its own or besidesmart_objects,text_layersandgroup_layers, and the render is billed like any other.- A layer cannot be hidden and edited in the same request. Such a request
returns
422. - A smart object that receives an
assetcannot have layers inside it hidden in the same request. Such a request returns422withNESTED_SLOT_CONFLICT. - A uuid this template does not have fails the render with
LAYER_NOT_FOUND, a400. - Hiding only takes layers away. A layer switched off in the file stays off, apart from a text layer you fill.
If the layer still does not render
- Confirm the layer is switched on in the file you actually uploaded.
- Check that the render does not name the layer, a group or smart object
around it or the layer it is clipped to in
hidden_layers. - Read the template back and compare the uuid you send against the list.
- Check
warningson the upload and on the render. - Contact support with the template uuid and the response.