Question: I'am developing a plugin for wordpress and have trouble with the Rest API.
On my test server it works without a problem. (v4.6.6)
On a different server (v4.4.10) the API returns this error message:

```
{"code":"rest_invalid_handler","message":"
Der Handler f\u00fcr die Route ist ung\u00fcltig","data":{"status":500}}%

```

The message is in german and means "The handler for the route is invalid." Don't understand why they translate the error messages for an API. Makes no sense for me. :)

The routes on the <http://domain/wp-json> are equal.
Maybe an problem with the different WP versions?

Definition of the route:

```
function __construct() {
    add_action( 'rest_api_init', function(){
        register_rest_route( 'test_namespace', 'ping', array(
            'methods' => 'POST',
            'callback' => array($this, 'ping_test'),
            'permission_callback' =>  array($this, 'myhacks_permission_callback'),
        ) );
    } );
}

```

Thanks for help.

Answer: 
I had the same issue. It seems that method `ping_test` cannot be private. If you change it to public, the error disappears.
Take a look at the [WordPress core](https://github.com/WordPress/WordPress/blob/master/wp-includes/rest-api/class-wp-rest-server.php#L861) and you can see that the method passed as the `callback` aka `ping_test` must be callable.

So this error triggers only when that method doesn't exist (for example I just encountered it because of a typo) or if is not accessible(like a protected or private method)