Skip to content

Internal Server Error in /V1/products/special-price API Endpoint #35934

Open
@mlf20

Description

@mlf20

Preconditions and environment

  • Magento version 2.4

Steps to reproduce

  1. Retrieve auth token from the admin endpoint /V1/integration/admin/
  2. Send post request to below endpoints with the payload:
    Payload:
    {"prices": "[]"}

or
{"prices": ""}

API's effected with above payload:

  1. POST request to http://yourstore/rest/default/V1/products/special-price
  2. /V1/products/base-prices
  3. /V1/products/cost
  4. /V1/products/special-price-delete
  5. /V1/products/tier-prices-delete
  6. /V1/products/tier-prices
  7. /V1/inventory/is-product-salable-for-requested-qty/{sku}/{stockId}/{requestedQty}

Expected result

Returns a 400 error as the request is malformed.

Actual result

Returns a 500 status code from a null TypeError .

Additional information

output of var/log/system.log:

	[2022-08-01T13:05:39.434987+00:00] main.CRITICAL: TypeError: Magento\Catalog\Model\Product\Price\SpecialPriceStorage::update(): Argument #1 ($prices) must be of type array, null given in /magento/vendor/magento/module-catalog/Model/Product/Price/SpecialPriceStorage.php:125
	Stack trace:
	#0 [internal function]: Magento\Catalog\Model\Product\Price\SpecialPriceStorage->update()
	#1 /magento/vendor/magento/module-webapi/Controller/Rest/SynchronousRequestProcessor.php(95): call_user_func_array()
	#2 /magento/vendor/magento/module-webapi/Controller/Rest.php(188): Magento\Webapi\Controller\Rest\SynchronousRequestProcessor->process()
	#3 /magento/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Webapi\Controller\Rest->dispatch()
	#4 /magento/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Webapi\Controller\Rest\Interceptor->___callParent()
	#5 /magento/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Webapi\Controller\Rest\Interceptor->Magento\Framework\Interception\{closure}()
	#6 /magento/generated/code/Magento/Webapi/Controller/Rest/Interceptor.php(23): Magento\Webapi\Controller\Rest\Interceptor->___callPlugins()
	#7 /magento/vendor/magento/framework/App/Http.php(116): Magento\Webapi\Controller\Rest\Interceptor->dispatch()
	#8 /magento/generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\Framework\App\Http->launch()
	#9 /magento/vendor/magento/framework/App/Bootstrap.php(264): Magento\Framework\App\Http\Interceptor->launch()
	#10 /magento/pub/index.php(30): Magento\Framework\App\Bootstrap->run()
	#11 {main} [] []

Release note

No response

Triage and priority

  • Severity: S0 - Affects critical data or functionality and leaves users without workaround.
  • Severity: S1 - Affects critical data or functionality and forces users to employ a workaround.
  • Severity: S2 - Affects non-critical data or functionality and forces users to employ a workaround.
  • Severity: S3 - Affects non-critical data or functionality and does not force users to employ a workaround.
  • Severity: S4 - Affects aesthetics, professional look and feel, “quality” or “usability”.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area: APIsComponent: ApiUse with concrete module component label E.g. "Component: Api" + "Catalog"Issue: ConfirmedGate 3 Passed. Manual verification of the issue completed. Issue is confirmedPriority: P2A defect with this priority could have functionality issues which are not to expectations.Progress: ready for devReported on 2.4.xIndicates original Magento version for the Issue report.Reproduced on 2.4.xThe issue has been reproduced on latest 2.4-develop branch

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions