Answer
When an error happens that prevents us from retroactively going back and sorting out the issue, then we have to raise an error instead of a warning. A classic example of an error is not being able to write to a database. A good example of a warning is another service not responding. When the other service is up and running, we can do a database call and call the service, finishing off the process.