title: Is it possible to read an SRML error message in Substrate UI, when a transaction fails?
body: <p>I am not sure of the behaviour of error messages in Substrate runtimes in relation to Substrate UI, and if they inherently cause a transaction failure or not.</p>
  
  <p>For example in the <code>democracy</code> SRML I see the following line:</p>
  
  <pre><code>ensure!(!&lt;Cancellations&lt;T&gt;&gt;::exists(h), "cannot cancel the same proposal twice");
  </code></pre>
  
  <p>Which presumably is a macro that ensures that the transaction fails or stops processing if the <code>h</code> (the proposal hash) already exists. There is clearly a message associated with this error.</p>
  
  <p>Am I right to assume that the transaction fails (without the rest of the SRML code being executed) when this test fails?</p>
  
  <p>If so, how do I detect the failure in Substrate UI, and possibly see the message itself?</p>
  
  <p>If not, then presumably some further code is necessary in the runtime module which explicitly creates an error. I have seen <code>Err()</code> - but not in conjunction with <code>ensure!()</code></p>