> ## Documentation Index
> Fetch the complete documentation index at: https://sudomock.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The base URL is https://api.sudomock.com.
> Authenticate every request with the x-api-key header. Keys begin with sm_.
> A render returns the finished image at data.print_files[0].export_path. A request sent with is_async true returns a job_id to poll at GET /api/v1/jobs/{job_id}.
> Prefer the official SDKs over hand-written HTTP calls: npm install sudomock for Node, pip install sudomock for Python.

# Why do my layer effects not render

> Why a drop shadow is missing while the mask renders.

Because a layer style and a mask reach the renderer by different routes. A mask
is pixel data on the layer itself and travels with it. Drop Shadow, Stroke and
Blend If are a separate record, read once when you upload the template and
stored with it. Every render afterwards composites from that stored record
rather than from the file on your disk, which is why a clipping mask can come
through while the style on the same layer does not.

The answer therefore sits at the upload rather than at the render. Uploading the
file again rebuilds the record from the file as it stands today, and that is the
move to try before anything else.

## How to identify this issue

* The mask, the opacity and the blend mode render, and only the style is
  missing.
* Every effect on that one layer is gone together, rather than one of several.
* Rendering the template at its own canvas width brings a small shadow back.

## Solution

<Steps>
  <Step title="Confirm the effect is switched on in the file.">
    Photoshop stores each effect with its own visibility, and the eye beside it
    in the Layers panel is what the upload reads. An effect left off is stored
    as off and is skipped at render.
  </Step>

  <Step title="Upload the template again.">
    Effects are read at upload, so a template registered before you last touched
    the file still carries the older record. A fresh upload hands back a new
    UUID for your renders to move to.
    [Upload a PSD](/docs/psd-mockups/upload-a-psd) covers the call.
  </Step>

  <Step title="Render once at the template's own width.">
    Shadow distance and size scale with the output width you ask for, so a two
    pixel shadow rendered at a quarter of the canvas width lands under a pixel
    and reads as nothing. Confirm the effect at full width first, then reduce
    `image_size`.
  </Step>

  <Step title="Compare against Photoshop's own export.">
    Export the same file at the same width from Photoshop and set the two side
    by side.
  </Step>
</Steps>

## What renders as authored

Drop Shadow, Stroke and Blend If render from the file with no parameter in the
render request, alongside masks, all 27 blend modes, opacity, warps and
perspective transforms. The row by row table is on
[PSD compatibility](/docs/psd-mockups/psd-compatibility), and
[What PSD features are supported](/docs/faq/what-psd-features-are-supported) shows
how to read one specific file.

A layer whose Fill is at zero keeps its effects. Photoshop reduces the fill
pixels and leaves the style at the layer's opacity, and the render follows the
same rule, which is how a border built from a stroke alone goes on working.

## Get more help

1. Re-read the upload response. A design area absent there will not appear in a
   render either, which points at the layer rather than at the style.
2. Read the `warnings` array on the render. A supported feature that had to
   change appearance names itself with a stable code.
3. [Contact support](https://sudomock.com/contact) with the mockup UUID, the
   layer name and the effect. A file attached to that message is the fastest
   route to an answer.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.