While getting a 3.8.6 instance fired up recently, I noticed a couple of bugs in User_Overlay while using RT::Authen::ExternalAuth.  Most of this is applicable to 3.8.7, although the fixed warning message with ? : was fixed in a different way.<br>
<br>Now these issues shouldn&#39;t generally manifest themselves, but when the do, this additional debugging so it doesn&#39;t crash badly does help.<br><br>-Brian<br><br>----------------<br><br>+++ rt-3.8.6/lib/RT/User_Overlay.pm     2009-12-21 20:48:27.000000000 +0000<br>
@@ -116,6 +116,8 @@<br>         @_    # get the real argumentlist<br>     );<br><br>+    $RT::Logger-&gt;warning( &quot;Create called&quot;, join(&#39;,&#39;,%args));<br>+<br>     # remove the value so it does not cripple SUPER::Create<br>
     my $record_transaction = delete $args{&#39;_RecordTransaction&#39;};<br><br>@@ -1018,6 +1020,13 @@<br>         return (undef);<br>     }<br><br>+    unless ( defined $self-&gt;PrincipalObj ) {<br>+        $RT::Logger-&gt;info(<br>
+            &quot;INTERNAL ERROR: IN IsPassword without a valid PrincipalObj when user &quot; . $self-&gt;Name . &quot; tried to log in&quot; );<br>+        return (undef);<br>+    }<br>+<br>+<br>    if ( $self-&gt;PrincipalObj-&gt;Disabled ) {<br>
         $RT::Logger-&gt;info(<br>             &quot;Disabled user &quot; . $self-&gt;Name . &quot; tried to log in&quot; );<br>@@ -1140,10 +1149,10 @@<br>     my $set_err = $self-&gt;PrincipalObj-&gt;SetDisabled($val);<br>
     unless ($set_err) {<br>         $RT::Handle-&gt;Rollback();<br>-        $RT::Logger-&gt;warning(&quot;Couldn&#39;t &quot;.($val == 1) ? &quot;disable&quot; : &quot;enable&quot;.&quot; user &quot;.$self-&gt;PrincipalObj-&gt;Id);<br>
+        $RT::Logger-&gt;warning(&quot;Couldn&#39;t &quot;.(($val == 1) ? &quot;disable&quot; : &quot;enable&quot;).&quot; user &quot;.$self-&gt;PrincipalObj-&gt;Id);<br>         return (undef);<br>     }<br>-    $self-&gt;_NewTransaction( Type =&gt; ($val == 1) ? &quot;Disabled&quot; : &quot;Enabled&quot; );<br>
+    $self-&gt;_NewTransaction( Type =&gt; (($val == 1) ? &quot;Disabled&quot; : &quot;Enabled&quot;) );<br><br>     $RT::Handle-&gt;Commit();<br><br><br>