Error fixMicrosoft Dynamics 365 Finance and Supply Chain ManagementWarehouse management / Wave processing

D365 Warehouse Wave Runs but No Work Is Created

Error
D365 warehouse wave processing no work created

Also searched as

  • D365 wave released but work not created
  • warehouse management wave processing failed no work
  • D365 location directive no location found work creation
  • wave step Create work failed D365 warehouse

Short answer

When a wave finishes without creating work, one of four things is usually wrong: the wave template has no Create work method, no work template matches the work order type, no location directive finds a pick location, or the inventory is not available at the warehouse locations. Open the wave processing history and work creation history first, because they state which step failed.

Applies to: Dynamics 365 Supply Chain Management with the Warehouse management module enabled, WMS-enabled items and warehouses. Same logic applies in recent one-version releases.

How to find why a wave created no work

  1. 1Open Warehouse management > Waves > All waves, select the wave and read its status. Waves in Released or Executing status may still be processing; Failed or a hanging Executing points to batch problems.
  2. 2Open Warehouse management > Inquiries and reports > Wave processing history (or the history on the wave) and read the message for each wave step, including Create work.
  3. 3Check the wave template under Warehouse management > Setup > Waves > Wave templates: confirm the template has a method such as Release to warehouse, Create work and a wave step code for your work order type, and that it is for the right wave type.
  4. 4Open Warehouse management > Setup > Work > Work templates and confirm there is a template for the work order type (Sales orders, Transfer issue, Production material, etc.) with query criteria matching the warehouse, work type and order.
  5. 5Open Warehouse management > Setup > Location directives for the same work order type and verify there is a Pick directive with lines whose queries match the item, warehouse and quantity you are releasing.
  6. 6Check the item is WMS-enabled: it needs a storage dimension group with Use warehouse management processes ticked and a reservation hierarchy, and the warehouse must be WMS-enabled.
  7. 7Check on-hand under Inventory management > Inquiries and reports > On-hand list, looking at the reserved and available physical quantities at pick locations, not just the warehouse total.
  8. 8Fix the template or directive, then rerun with Warehouse management > Waves > Wave processing, or process the load again from the load planning workbench.

How wave processing builds work

A wave is a container of shipment lines that a template processes through a sequence of methods. The usual sequence is to validate the wave, allocate and reserve inventory, create work, and release the work to the warehouse floor. The Create work method asks the system to turn each reserved shipment line into work lines, using the matching work template to decide the structure (pick, put, and any intermediate steps).

Work creation then calls the location directives to decide which locations to pick from and where to put. If a work template does not match, or a location directive returns nothing, the system cannot build the work lines and the wave ends without work, often with only a short infolog message in the processing history.

Understanding this order matters because the symptoms differ. If the reservation step fails, you see shortages. If work creation fails, the lines are reserved but nothing appears in the work list, and the quantity stays allocated until you cancel the wave or fix the setup and reprocess it.

Work template and query mismatches

Work templates are matched by work order type and a query on the work header. A very common cause is a query that was built for one warehouse or work class and then no longer matches after a new warehouse or order type is introduced. The result is that no template is eligible and the system quietly creates no work.

Also check the sequence number on work templates. The system picks the first template that matches in sequence order. A catch-all template with a lower sequence and a restrictive query may intercept orders you intended for a different template, and a template without a valid work class for a pick line will be skipped.

When you test a change, use a single sales order line in a test wave rather than a big load. You will see which template and directive were chosen, and you avoid reserving hundreds of lines that you then have to unwind.

Location directives and inventory

Location directives are queried per work order type and work type. A Pick directive needs at least one line whose query can return a location with available physical inventory, and the line must have Fixed or Variable quantity settings that make sense for the demand. If every directive line has a location query filtered by a wrong location profile, work creation fails with a message that no location could be found.

Inventory availability problems cause similar symptoms. Stock may exist at warehouse level but sit in a receiving or quality location that no directive reads, or it may be in a location that is blocked by an inventory status. A directive query that filters on inventory status Available will not pick it.

Reservation hierarchy also matters: if reservation is at the batch or serial level and the order does not specify one, the system may only reserve at a higher level, leaving the pick unable to resolve a location. Review the item's reservation hierarchy and the dimension above location settings together.

-- Wave and work creation history are shown in forms, but this lists recent waves in status Failed or Executing (read-only)
SELECT WAVEID, WAVESTATUS, WAVETEMPLATENAME FROM WHSWAVETABLE WHERE WAVESTATUS IN (4, 5);

Batch and processing problems

Wave processing can run in batch. If the Wave batch group has no active AOS, or the Process wave batch job is held, waves sit in Executing and no work appears. Check System administration > Inquiries > Batch jobs for the wave processing jobs and look at batch server assignment.

For large loads, wave step timeouts can mark the wave Failed after partial work creation. In that case, do not just release the wave again. Cancel it, check what was created in Warehouse management > Work > All work, and rerun so you do not end up with duplicate or orphaned work lines.

Common pitfalls

  • !Editing a work template or location directive and testing on an already reserved wave without canceling it first.
  • !Assuming warehouse-level on-hand means the stock is pickable: it may be in a location type or status no directive reads.
  • !Putting a catch-all work template at a low sequence number so it intercepts orders meant for specific templates.
  • !Releasing a failed wave again without checking whether partial work already exists.
  • !Forgetting that the item must use a WMS storage dimension group and reservation hierarchy.

How an ERP-grounded AI assistant handles this

An assistant grounded in the warehouse data, such as ERPray, can take a wave ID and trace it: which template ran, which work template matched, which directive lines returned no location, and whether the stock sat in a non-pickable location or status. It reads the setup and history tables and shows the queries, so a floor supervisor gets a plain reason instead of a short infolog line.

Frequently asked questions

Why does my wave show Released but there is no work?

Released only means the wave moved through its steps without a hard failure. If the Create work step found no matching work template or no location from the directives, there may be nothing to release. Check the wave processing history and work templates for the order type.

Do I need a location directive for every work order type?

Yes, any work order type that creates warehouse work, such as sales orders, transfer issues and production material, needs location directives for the work types it produces, typically pick and put. Without them, work creation cannot find locations.

Can I recreate work for a wave without releasing it again?

In many cases you can cancel the wave, fix the setup, and reprocess the shipment lines through a new wave. Check the shipment status and reservations first so you do not leave stock reserved against a canceled wave.

Does this apply to production material picking too?

Yes. Production orders released to the warehouse use the same wave and work template logic with the Production material work order type, and need their own work templates and location directives.

Related

Error fix

Fixing "There are currently no batch servers available for processing" in D365 F&SCM

This message means the batch framework cannot find any AOS instance flagged as a batch server and available for the batch group the job is assigned to. The fix is almost always in server configuration (System administration > Servers) or batch group assignment, not in the batch job itself.

Error fix

D365 Master Planning Ran but No Planned Orders Were Generated

If a master planning run produces no planned orders, check in this order: the item is included in the plan, coverage is not set to Manual, the item is not stopped for purchase or production, a default order type exists, and the demand falls inside the plan's and item's time fences. Also confirm whether the plan uses Planning Optimization.

How-to

How to Refresh a Dynamics 365 F&SCM Sandbox From Production

In Lifecycle Services, open the target sandbox, choose Maintain > Move database > Refresh database, pick the production environment as the source and confirm. The copy replaces the sandbox AOS database, so you must then redo everything that is environment-specific: batch jobs, integration endpoints, email, print settings, users and Entra ID app registrations.

Error fix

Fixing "Cannot create a record in (table). The record already exists" in D365 F&SCM data entity imports

This is the standard kernel duplicate-key exception, thrown when the Data Management Framework tries to insert a staging row into a target table whose unique or alternate key already matches an existing record. It almost always means the entity's insert-vs-update logic did not recognize the target row as an update, not that you have a true accidental duplicate in your source file.

Error fix

Fixing "You do not have the following permissions on TableData (table): (permission)" in Business Central AL

This runtime error means the current user's assigned permission sets do not grant the required Insert, Modify, Delete, Read, or Execute right on that specific table. It is most common right after installing or updating a custom AL extension, because Business Central checks object-level permissions even for tables an extension owns.

Error fix

Fixing "The CIL object was not found" in Dynamics AX 2012

This error appears when the AOS tries to execute compiled CIL for a class or method that has not actually been regenerated since a code change was imported or edited, so the .NET runtime has nothing matching to run. The fix is a full compile followed by a full CIL generation and an AOS restart, not just a partial or incremental rebuild.

AI for ERP

AI for Dynamics 365 Finance and Supply Chain beyond Copilot

AI for D365 Finance and Supply Chain beyond Microsoft Copilot: private LLM grounded on data entities and OData, on-prem-capable via Local Business Data.

Stuck on Microsoft Dynamics 365 Finance and Supply Chain Management?

Talk to engineers who work inside Microsoft Dynamics 365 Finance and Supply Chain Management every week, and who build private AI that answers these questions from your own ERP data.