Now I see you use the async report rendering (options.reports.async == true). Is this intentional?
The code from the docs doesn't work for the async reports. You would need to remove the options.reports.async.
In case you still want to use the async report from the js client, you need to implement the polling as described here on your own.