Quick Answer — SAP Deficit of Stock Error
- The error means SAP cannot find enough unrestricted stock at the plant and storage location specified in your MIGO goods movement to satisfy the quantity you are trying to issue or transfer.
- The four causes are: goods receipt not yet posted (sequencing error); stock is at a different storage location than specified; stock exists but is in quality inspection or blocked status; or a previous posting error put stock in the wrong place.
- First step: open MMBE and check the material at the exact plant and storage location in the MIGO document. Expand to storage location level — plant totals can mislead you.
- Never enable negative stock (OMJ1) as a first response. Negative stock is a legitimate configuration for specific business processes, not a workaround for missing stock data.
- Identical in ECC and S/4HANA. Same transactions, same stock types, same fix process.
Error messages you will see:
"Deficit of unrestricted-use stock [qty] [UoM] [material] [plant] [SLoc]"
"Deficit of stock: [qty] [material]"
"Only [X] [UoM] available, [Y] required" — appears in MIGO item detail
"Negative stocks not allowed for plant [XXXX]" — when negative stock is disabled
Open MMBE first — always. Do not assume stock is missing. The majority of real-project deficit errors are caused by stock in the wrong location or wrong stock type — not genuinely missing stock. MMBE tells you in 30 seconds.
Check at storage location level, not plant level. A plant with 500 units unrestricted can still produce a deficit error if the specified storage location has zero. Expand the MMBE plant node.
Quality inspection stock is not available for goods issues. Stock in QI looks like stock in MMBE but SAP will not issue it. Use movement type 321 to release to unrestricted — only after inspection confirms the stock is acceptable.
Never enable OMJ1 negative stock as a workaround. Negative stock masks a data problem. It causes valuation errors and is a standard internal audit finding. Fix the root cause — wrong GR plant, missing GR, wrong location — instead.
In S/4HANA, MATDOC replaced MKPF/MSEG — but MARD still holds stock quantities, MMBE works identically, and all movement types are unchanged. The deficit of stock fix process is the same in ECC and S/4HANA.
SAP Stock Types — Why Only Unrestricted Stock Can Be Issued
In SAP MM, total physical stock at a plant is divided into distinct stock types. Each stock type has different availability rules. A goods issue checks only unrestricted stock — the stock type that represents material which has been received, inspected (where required), and is freely available for consumption or sale.
The deficit error occurs when you try to issue more unrestricted stock than exists at the specified location. Even if your plant holds 500 units total, if 400 are in quality inspection and 100 are at a different storage location, a goods issue for 150 units at the target location will trigger the deficit error. The physical goods are there — but the SAP stock classification says they are not available.
The key insight. When you see the deficit error, do not immediately assume stock is missing. Go to MMBE first. In the majority of real project cases, stock exists — it is just in the wrong type or the wrong location. The fix is moving it to where it needs to be, not creating new stock or enabling negative stock.
SAP Stock Types and Availability for Goods Issues
- Fully received and cleared for use
- Counts toward available stock in MRP
- Can be issued via MIGO movements 201, 261, 311
- Shows in MMBE as "Unrestricted use"
- Stored in MARD table field LABST
- Awaiting inspection usage decision
- Physically present but restricted
- Release to unrestricted: movement type 321
- Release to blocked: movement type 322
- MARD field: EINME
- Deliberately restricted — returns, holds
- Transfer to unrestricted: movement type 344
- Transfer to QI: movement type 322 reversed
- MARD field: SPEME
- Batch status set to Restricted in MSC2N
- Physically present, not issuable
- Fix: change batch status to Unrestricted in MSC2N
- MARD field: EINME (same as QI)
4 Root Causes of the Deficit of Stock Error
Open MMBE for the material and plant before doing anything else. What you see in MMBE tells you which cause applies and which fix to use.
Step-by-Step: How to Fix the Deficit of Stock Error
Each step is diagnostic before it is corrective. Confirm what MMBE shows, then apply the right movement type for the situation.
Option A (faster): Go back to the MIGO goods issue and change the storage location field to the location where unrestricted stock actually exists. Post.
Option B (if the GI location is fixed by business process): Post a stock transfer first. Go to MIGO, select Transfer Posting, movement type 311. Enter: plant, material, quantity, From storage location (where stock is), To storage location (where the GI needs it). Post. Then retry the goods issue.
| Mvt Type | Description | When to Use |
|---|---|---|
| 101 | Goods Receipt against Purchase Order — adds unrestricted stock | GR not yet posted |
| 102 | Reversal of Goods Receipt — removes stock posted to wrong plant/location | Wrong plant GR |
| 311 | Transfer Posting — move unrestricted stock between storage locations within same plant | Wrong location |
| 321 | Transfer Posting — move stock from Quality Inspection to Unrestricted Use | Stock in QI status |
| 344 | Transfer Posting — move stock from Blocked to Unrestricted Use | Stock is blocked |
| 561 | Initial Stock Upload — post opening stock without PO reference. Production use requires authorisation. | Authorised only |
Negative Stock and OMJ1 — When It's Legitimate and When It Isn't
SAP can be configured to allow goods issues that take stock below zero — a feature called negative stock. It is controlled in OMJ1 (Allow Negative Stocks) at plant and storage location level. When enabled, a goods issue posts even if unrestricted stock is zero or negative, and the deficit error does not appear.
Negative stock is a legitimate configuration for specific business scenarios: retail and distribution companies that confirm shipments before goods receipts arrive; warehouses that operate on a same-day ship model where GR and GI happen simultaneously; and environments that batch-post GRs at end of day after GIs have already been processed. In these cases, negative stock is intentional and controlled with a reconciliation process.
When not to enable negative stock. Negative stock should never be enabled as a response to a deficit of stock error caused by a data problem — a missing GR, stock at the wrong location, or incorrect stock type. Enabling OMJ1 to bypass the error without fixing the root cause creates persistent negative stock balances, which cause valuation errors (moving average price and standard price calculations become incorrect for negative quantities), physical inventory discrepancies, and common internal audit findings. Fix the data; do not mask it.
How to enable negative stock in OMJ1 (when genuinely required)
Menu path: SPRO > Materials Management > Inventory Management and Physical Inventory > Goods Issue / Transfer Postings > Allow Negative Stocks (transaction OMJ1). In OMJ1 you can activate negative stock at plant level (applies to all storage locations in the plant) or at individual storage location level. Save and transport the change through your system landscape. Document the business justification and the reconciliation process that will manage the negative stock balances.
Monitoring negative stock once enabled: Use MB52 with a filter on unrestricted quantity less than zero to list all negative stock positions. Review these regularly — any item in negative stock represents a pending GR that must be posted to bring the balance back above zero. Persistent negative stock that is never reconciled is a data integrity problem even when negative stock is intentionally enabled.
SAP Deficit of Stock — 21 Questions Answered
The error means there is not enough unrestricted stock at the plant and storage location specified in the goods movement. The four most common causes: (1) goods receipt not yet posted — sequencing error; (2) stock exists at the plant but the wrong storage location is specified on the GI; (3) stock exists but is in quality inspection or blocked status, not unrestricted; (4) a previous posting error put stock at the wrong plant or location. Check MMBE at storage location level first — do not assume stock is missing.
Open MMBE and check unrestricted stock at the exact plant and storage location in your MIGO document. Then: if stock is at a different location, change the GI location or transfer stock with movement type 311; if stock is in quality inspection, use movement type 321 to release to unrestricted; if stock is blocked, use movement type 344; if the GR was never posted, post it now with movement type 101; if the GR was at the wrong plant, reverse with 102 and re-post at the correct plant with 101.
Unrestricted stock is the only stock type available for goods issues (consumption, production, transfer). It is stock that has been received and cleared — no pending inspection, no holds. Other stock types at the same plant (quality inspection, blocked, restricted-use) are physically present but not available for GI until transferred to unrestricted. MMBE shows unrestricted stock in the "Unrestricted Use" column. In the MARD database table it is stored in the LABST field.
Plant-level stock is the total unrestricted quantity across all storage locations in a plant. Storage location stock is the unrestricted quantity at a specific warehouse location within that plant. When a goods issue specifies a storage location, SAP checks that specific location — not the plant total. A deficit error can occur even when the plant has enough stock overall, if the specified location is short. Always expand MMBE to storage location level when diagnosing — the plant total can mislead you into thinking stock is there when the location-level quantity is zero.
MMBE (Stock Overview) displays stock quantities for a material across all plants and storage locations, broken down by stock type (unrestricted, quality inspection, blocked, in transit, restricted). To diagnose the deficit error: go to MMBE, enter material number and plant, execute, then expand the plant node to see storage location detail. Compare the unrestricted quantity at the specific plant and storage location against the quantity being issued. MMBE is a display-only transaction — it shows the problem, it doesn't fix it.
Negative stock allows SAP to post a goods issue that takes stock below zero. Configured in OMJ1. Legitimate uses: same-day ship operations where GI is posted before GR, or environments that batch-post GRs daily after GIs run. It should never be used to bypass a deficit error caused by data problems — missing GR, wrong location, wrong stock type. Persistent negative stock causes valuation errors and is an audit finding. Fix the data root cause; do not mask it with OMJ1.
OMJ1 is the SAP configuration transaction for allowing negative stocks per plant and storage location. Menu path: SPRO > Materials Management > Inventory Management and Physical Inventory > Goods Issue / Transfer Postings > Allow Negative Stocks. You can enable negative stock at plant level (all locations in the plant) or for specific storage locations. Changes in OMJ1 are client-dependent configuration — transport through DEV → QA → PRD in a standard landscape, and document the business justification before enabling.
The most common: 201 (goods issue to cost centre), 261 (goods issue for production/process order), 311 (transfer between storage locations — triggered when source location has no stock), and 541 (provide components to subcontractor). All check unrestricted stock at the specified plant and storage location. Movement type 101 (goods receipt) does not cause the error — it adds stock and is often the fix.
Yes — when the outbound goods issue (movement type 351) is posted at the supplying plant of a Stock Transport Order, SAP checks unrestricted stock at that plant and storage location. If the supplying plant has insufficient unrestricted stock, the deficit error appears. Check MMBE at the supplying plant and apply the same diagnostic — wrong location, wrong stock type, or stock not received. For in-transit stock monitoring between plants, use MB5T (stock in transit report).
Both are restricted and unavailable for goods issues. Quality inspection (QI) stock is stock flagged for inspection — typically posted automatically when QI is active on the material master. Released via usage decision in QA11 (SAP QM) or manually with movement type 321. Blocked stock is deliberately restricted — returns (movement type 122), damaged goods, or manual blocking. Released with movement type 344. Neither type appears in the "unrestricted use" column in MMBE and both will cause the deficit error if a GI is attempted against them.
In MIGO: select Transfer Posting, enter movement type 321. Enter material, plant, storage location, and quantity to release. Post. MMBE will then show the released quantity as unrestricted. Only do this when the inspection is complete and the stock is confirmed acceptable. If SAP QM is active, use the usage decision in QA11 instead — it triggers the stock transfer automatically and maintains the inspection record in the system.
Stock quantities are stored in: MARD (Storage Location Data for Material) — unrestricted (LABST), QI (EINME), blocked (SPEME), restricted (EINME) by material/plant/storage location. MARC — plant-level stock totals. MSKA — sales order stock. MSKU — consignment stock. In S/4HANA, goods movement documents are stored in MATDOC (replacing MKPF/MSEG). When troubleshooting via SE16N, query MARD by MATNR (material), WERKS (plant), LGORT (storage location), and check the LABST field for unrestricted quantity.
Not directly — a reservation (MB21) does not reduce physical unrestricted stock in MARD. It flags stock for planned consumption but the unrestricted quantity in MMBE is unchanged until the actual GI posts. However, if multiple GIs are posted against reservations for the same material and the combined quantity exceeds available unrestricted stock, later GIs will trigger the deficit error. Check open reservations with MB25 to see whether competing reservations are consuming the available stock.
Movement type 561 is Initial Stock Upload — it posts stock to SAP without a purchase order reference. Used during system go-live to load opening stock balances. In a production system after go-live, 561 is restricted to authorised users because it creates stock with no procurement document trail. For post-go-live stock corrections, use physical inventory (MI01 create count document, MI04 enter count, MI07 post differences) instead. Physical inventory creates an auditable record; 561 does not.
Three practices: (1) Enforce GR-before-GI sequencing — train users that the goods receipt must be posted in SAP before a goods issue is attempted. For production orders, the system enforces this through component availability checks in CO01/CO02. (2) Monitor stock at storage location level — use MMBE or MB52 to check location-level availability before mass goods issues. (3) Investigate any negative stock immediately — run MB52 filtered by negative quantities monthly and correct each instance with a proper GR or physical inventory adjustment, not by enabling negative stock in OMJ1.
MB52 is the SAP report for listing warehouse stocks across multiple materials, plants, and storage locations simultaneously — showing unrestricted, QI, blocked, and restricted quantities. It is the multi-material equivalent of MMBE (which is for a single material). Useful for: checking all materials at a location before a mass goods issue; identifying materials with zero or negative stock; monthly stock monitoring across a plant. To find negative stock: run MB52 and filter by unrestricted quantity less than zero.
Restricted-use stock applies to batch-managed materials where the batch status is set to Restricted (rather than Unrestricted) in MSC2N. It appears in MMBE but is unavailable for goods issues. Blocked stock applies to any material (batch-managed or not) and is set by specific movement types (e.g. 122 for return delivery) or configuration. Fix for restricted-use: change the batch status to Unrestricted in MSC2N. Fix for blocked stock: post movement type 344 to transfer to unrestricted.
Yes — the stock deficit logic, unrestricted stock check, and fix transactions (MMBE, OMJ1, movement types 101, 102, 311, 321, 344, 561) are identical in ECC and S/4HANA. The S/4HANA difference is backend storage: goods movement documents are now in MATDOC instead of MKPF/MSEG, and stock quantities are still in MARD. MMBE and MB52 work identically. No relearning required for deficit of stock troubleshooting when migrating from ECC to S/4HANA.
Yes — if storage location entry is not mandatory for the plant (controlled by plant settings in OMB1), you can post a MIGO goods issue with only plant specified. In this case SAP checks total plant unrestricted stock. However, most live SAP systems require a storage location for warehouse management and physical inventory purposes. If you are hitting the deficit error solely because the wrong storage location was entered, correcting the storage location in the MIGO document before posting is the fastest fix — no stock transfer needed.
Yes — VoiSAP's SAP MM training covers inventory management in full: MIGO movement types, stock types, MMBE, MB52, physical inventory, special procurement (consignment, subcontracting, STO), and account determination for goods movements (OBYC) — all on a live SAP S/4HANA system. Book a free demo to discuss your background and the fastest path to your first SAP MM role.
Run MB52 (Warehouse Stocks of Material) and filter by plant or storage location. After the report runs, look at the Unrestricted Use column — any negative value indicates a stock deficit position. You can export the list and work through each material to identify the root cause: a missing goods receipt, a GR posted to the wrong plant, or a genuine process that intentionally ships before receiving. Address each with the correct fix — a proper GR (movement type 101) or a physical inventory adjustment (MI01, MI04, MI07) — rather than enabling negative stock in OMJ1 as a blanket setting.
On a Real System, Not a Textbook.
Book a free demo class. See MIGO, MMBE, and movement types in a live SAP S/4HANA system, ask your questions, and decide if VoiSAP's training is right for you.