diff --git a/WBM/Fail.pm b/WBM/Fail.pm
new file mode 100644
index 0000000000000000000000000000000000000000..2b033dc40b87f5fc07f8f3d365921272f82f8b31
--- /dev/null
+++ b/WBM/Fail.pm
@@ -0,0 +1,47 @@
+package WBM::Fail;
+
+use v5.26;
+use utf8;
+use strict;
+use warnings;
+
+use parent      qw(WBM::Driver);
+use feature     qw(signatures);
+no  warnings    qw(experimental::signatures);
+
+sub new($class, %args) {
+    my $self = $class->SUPER::new(%args);
+
+    $self->log->fatal("missing 'text' parameter in constructor")
+        unless defined $args{text};
+
+    $self->{text}   = $args{text};
+    $self->{first}  = 1;
+    return $self;
+}
+
+sub refresh_on_event($self) { 1; }
+
+sub invoke($self) {
+    $self->log->info("invoked");
+    my $ret = {
+        text    => $self->{text},
+        icon    => "",
+        color   => "dc322f",
+        cache   => "+inf",
+    };
+
+    if ($self->{first}) {
+        $ret->{blink}       = 30;
+        $ret->{invert}      = "+inf";
+        $self->{first}      = 0;
+    } else {
+        $ret->{reset_all} = 1;
+    }
+
+    return $ret;
+}
+
+# vim: syntax=perl5-24
+
+1;