The bug was 'write_still' was incorrectly being initialized to 'view_context'. 'write_still' should always write an image, so failing silently here is bad behavior. Also, opengl render and internal render engine operator should use this option the same way.