PHP error when rendering a template from __toString()
In PHP, nothing can throw an exception inside of a __toString() method, or else you'll get the error you're seeing.

Not only is that a questionable design decision, it also hides the underlying exception message and stack trace from you.

If you do this, at least you'll be able to log the underlying error and fix that:

public function __toString()
{
    try
    {
        return $this-&gt;render();
    }
    catch (\Exception $e)
    {
        Craft::log('ERROR: '.$e-&gt;getMessage(), LogLevel::Error);
    }
}


Then you can look in your craft/storage/runtime/logs files for [error] to see the exception message.