Shouldn't the rosoct code be the following to specify a failure? Compare with the instructions on the http://www.ros.org/wiki/rosoct#line-125 wiki function res = stringservcb(req) res = req.create_response_(); if( strcmp(req.str,'dofail') ) % some arbitrary failure condition res = []; #<<<<<------- not req=[] else res.str = [req.str '_a']; end And in the spirit of the examples, is there something other than the following be needed to call the service? req = rosoct_StringString(); req.str = "input"; response = rosoct_service_call('mytempserv', req); #I would expect response.str == input_a I'm trying this and it seems that the service is never actually triggering the stringservcb callback. When the "responder" (b_node) is active the caller takes 21 seconds to receive a null response, while it only takes .002 seconds to receive the null response when b_node is not running. http://ros-users.122217.n3.nabble.com/file/n1481922/a_node a_node http://ros-users.122217.n3.nabble.com/file/n1481922/b_node b_node (yes there is a package called rosoctlistener) -- View this message in context: http://ros-users.122217.n3.nabble.com/ROSOCT-services-tp1481922p1481922.html Sent from the ROS-Users mailing list archive at Nabble.com.