That sounds kind of similar.
By adding a lot of print() statements around the build code, I think the failure is somewhere in the interaction between Envjs and steal. I don't know whether canjs uses the same setup (a quick look on github suggests that it might) ?
I have tracked the problem as far as here in steal/build/open.js:
- "steal.js": function(script){
- // if there's timers (like in less) we'll never reach next line
- // unless we bind to done here and kill timers
- window.steal.one('done', doneCb);
- }
When it fails, that doneCb callback doesn't get called, I haven't managed to work out why yet.