View Issue Details

IDProjectCategoryView StatusLast Update
0029438mantisbtapi restpublic2023-10-14 12:28
Reporterforcead Assigned Todregad  
PriorityhighSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Version2.11.0 
Target Version2.25.8Fixed in Version2.25.8 
Summary0029438: Unsupported operand types when an incident with time tracking notes is updated via REST API
Description

Slim Application Error
The application could not run because of the following error:

Details
Type: Error
Message: Unsupported operand types
File: /home/xxxxxxxxx/public_html/core/database_api.php
Line: 737
Trace

#0 /home/xxxxxxxxx/public_html/api/soap/mc_api.php(1072): db_minutes_to_hhmm(Array)
#1 /home/xxxxxxxxx/public_html/api/soap/mc_issue_api.php(1157): mci_get_time_tracking_from_note('5378', Array)
#2 /home/xxxxxxxxx/public_html/api/rest/restcore/issues_rest.php(416): mc_issue_update('', '', '5378', Array)
#3 [internal function]: rest_issue_update(Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#4 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(40): call_user_func('rest_issue_upda...', Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#5 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/Route.php(281): Slim\Handlers\Strategies\RequestResponse->__invoke('rest_issue_upda...', Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#6 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#7 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/Route.php(268): Slim\Route->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#8 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/App.php(503): Slim\Route->run(Object(Slim\Http\Request), Object(Slim\Http\Response))
#9 /home/xxxxxxxxx/public_html/api/rest/restcore/ApiEnabledMiddleware.php(40): Slim\App->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#10 [internal function]: ApiEnabledMiddleware->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\App))
#11 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array(Object(ApiEnabledMiddleware), Array)
#12 [internal function]: Slim\DeferredCallable->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\App))
#13 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\App))
#14 /home/xxxxxxxxx/public_html/api/rest/restcore/AuthMiddleware.php(91): Slim\App->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#15 [internal function]: AuthMiddleware->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Closure))
#16 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array(Object(AuthMiddleware), Array)
#17 [internal function]: Slim\DeferredCallable->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Closure))
#18 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Closure))
#19 /home/xxxxxxxxx/public_html/api/rest/restcore/VersionMiddleware.php(31): Slim\App->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#20 [internal function]: VersionMiddleware->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Closure))
#21 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array(Object(VersionMiddleware), Array)
#22 [internal function]: Slim\DeferredCallable->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Closure))
#23 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Closure))
#24 /home/xxxxxxxxx/public_html/api/rest/restcore/OfflineMiddleware.php(35): Slim\App->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#25 [internal function]: OfflineMiddleware->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Closure))
#26 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array(Object(OfflineMiddleware), Array)
#27 [internal function]: Slim\DeferredCallable->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Closure))
#28 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Closure))
#29 /home/xxxxxxxxx/public_html/api/rest/restcore/CacheMiddleware.php(30): Slim\App->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#30 [internal function]: CacheMiddleware->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Closure))
#31 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array(Object(CacheMiddleware), Array)
#32 [internal function]: Slim\DeferredCallable->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Closure))
#33 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Closure))
#34 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#35 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/App.php(392): Slim\App->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#36 /home/xxxxxxxxx/public_html/vendor/slim/slim/Slim/App.php(297): Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response))
#37 /home/xxxxxxxxx/public_html/api/rest/index.php(107): Slim\App->run()
#38 {main}
Steps To Reproduce
var settings = {
  "url": "XXXXXXXXXX.com/api/rest/issues/5378",
  "method": "PATCH",
  "timeout": 0,
  "headers": {
    "Authorization": "XXXXXXXXXXXXXXXXXXXXXXX",
    "Content-Type": "application/json",
    "Cookie": "PHPSESSID=kl4e0ovdjai72h8241mtful1h4"
  },
  "data": JSON.stringify({
    "handler": {
      "name": "david"
    },
    "status": {
      "name": "assigned"
    }
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
TagsNo tags attached.

Activities

dregad

dregad

2023-05-05 12:00

developer   ~0067740

I can reproduce this bug with the following code snippet.

$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'TOKEN',
    'Content-Type' => 'application/json'
    ];
$body = [
    "handler" => ["name" => "tdev"],
    ];
try {
    $r = $client->patch( 'http://example.com/mantis/api/rest/issues/XXXX', [
        'headers' => $headers,
        'body' => json_encode($body),
    ] );
    echo $x->getBody();
} catch ( \GuzzleHttp\Exception\GuzzleException $e) {
    echo $e->getResponse()->getBody()->getContents();
}

It is a regression introduced by MantisBT master 39ae82ad

dregad

dregad

2023-05-06 06:09

developer   ~0067741

PR https://github.com/mantisbt/mantisbt/pull/1890

Related Changesets

MantisBT: master 39ae82ad

2018-01-08 21:31

vboctor


Details Diff
Use consistent time tracking formatting

Get Issue and Add Note should use consistent time tracking formatting.
Affected Issues
0029438
mod - api/soap/mc_issue_api.php Diff File

MantisBT: master-2.25 04537634

2023-05-06 06:06

dregad


Details Diff
Fix error updating issue with time-tracking notes

REST API returned Slim Application Error / Unsupported operand types
when attempting to update an Issue with time tracking notes.

Regression introduced by 39ae82ad200d759b8eb56e8758fcdebb4686daf3.

Fixes 0029438
Affected Issues
0029438
mod - api/soap/mc_api.php Diff File