Getting js/ace/worker-json.js 404 (Not Found) when creating first projection


I’m new to Event Store and I’m following the examples on the documentation. When I try to create the first projection



“$stats-collected” : function(s,e) {

var currentCpu = e.body[“sys-cpu”];

if(currentCpu > 40) {

emit(“heavycpu”, “heavyCpuFound”, {“level” : currentCpu})




on chrome debug console I get:

POST 408 (Server was unable to handle request in time) app.min.js:14

GET 404 (Not Found)

and in the command prompt I get an infinite number of messages like this:

[26544,14,16:48:27.089] Error while processing message EventStore.Projections.Core.Messages.EventReaderSubscriptionMessage+CheckpointSuggested in queued handler ‘Projection Core #0’.Specified method is not supported.

I’m using Event Store 3.0.3 for Windows and I’ve already set --run-projections=all

Can someone please help?

Thanks in advance.

There are two issues here:

The worker-json.js is nothing to worry about, and is fixed on the dev branch.

Are you creating the projection with quotes around it as listed here?

Hi James

Thanks for your reply. No, I’m not creating the projection with quotes around it, I shouldn’t have posted like that, sorry.


Do you have any other suggestions? If the worker-json.js error is nothing to worry about, why isn’t my heavycpu stream being created? I’ve created it manually to test if the issue was only on the creation, but still no events were added to it.


I’ve seen this kind of error. It was one of these two reasons, if I recall correctly:

  • Not all the system projections are running (fresh install). Click the “Enable All” button on the projection tab.

  • Your projection name doesn’t start with a dollar sign ($). My projections never worked until I stumbled over this requirement. (Is it documented anywhere?)

Oops, nevermind the dollar sign thing. My memory mixed this up with a different thing.

There are lots of reasons your projection could not be receiving events


The most obvious, what ip/port are you running your system on? What
interval are you running statistics collection on?

Thanks for your replies.

I found the issue. The examples on the Event Store documentation are not up to date. $stats-collected is now $statsCollected and it was hard to spot.

This projection, when using Event Store 3.0.3, should be:



“$statsCollected” : function(s,e) {

var currentCpu = e.body[“sys-cpu”];

if(currentCpu > 40) {

emit(“heavycpu”, “heavyCpuFound”, {“level” : currentCpu});





terça-feira, 31 de Março de 2015 às 11:09:21 UTC+1, Greg Young escreveu:


I’ve just gone back and reviewed the blog series you were following and made the change you found, the site should be updated shortly. Thanks for reporting back the solution.