Lifecycle is missing in %Lifecycles config

Dear all
i do an upgrade of our RT system from 5.0.1 to 5.0.6 version. That’s run like a charm.
I got a warning during the generation of the index (“rt-fulltext-indexer”) that shows the folowwing:

[180182] [Fri May 31 10:32:07 2024] [warning]: Lifecycle is missing in %Lifecycles config at /opt/rt5/sbin//lib/RT/Lifecycle.pm line 648, line 2112. (/opt/rt5/sbin/…/lib/RT/Lifecycle.pm:648)

That’s seems to be related to a null camp in a Lifecycles camp in the databases. I’ve read the documentation about upgrading and don’t see anything about that. Particulary that in my ols verson of RT, generating the index don’t generate thsi type of warning.

Hope that someone can explain/resolve this warning.

Regards

We have released RT 5.0.7 beta 1 which should fix this issue. We’re planning to do a final RT 5.0.7 release once we receive feedback from testers, so it would be great to hear if it works for you.

I install the 5.0.7beta 1 version on our server. This version keeps to generate the warning during the full index:

54773] [Tue Jun 4 12:52:02 2024] [warning]: Lifecycle is missing in %Lifecycles config at /opt/rt5/sbin//lib/RT/Lifecycle.pm line 648, line 2112. (/opt/rt5/sbin/…/lib/RT/Lifecycle.pm:648)

I’m ready to test new version as soon as possible.

Thank’s a lot!

Regards

RT 5.0.7beta 1 is the new version, so the issue should be fixed there. Do you see that warning when running RT itself or any other scripts in sbin, like sbin/rt-clean-sessions or sbin/rt-attributes-viewer? Can you tell which lifecycle is missing? You could go to Admin > Tools > System Configuration and check the loaded %Lifecycles displayed there.

Dear Jim

Thank’s to respond me.

The warning is generated when i run the full index command:
rt-fulltext-indexer

As i wrote in my first email, i upgarde from 5.0.1 to 5.0.6 (5.0.7beta1
now). And in the old version, this warning was not generated making the
index.

The problem is that seem to be a lifecyle missing: The code is

warn “Lifecycle $name is missing in %Lifecycles config”;

and in this case: $name is null “” .

[warning]: Lifecycle is missing in %Lifecycles config

In the system configuration, i’v got a big descreiption of lifecycles…
Do you want it?

Regards

You don’t necessarily need to post it. If you look at the lifecycles, is there one with an empty string instead of a name? That is, for the key, instead of ‘default’ =>, do you have one that looks like ‘’ =>? If so, that’s what the warning is telling you.

Dear Jim

Before all, as i do for some times before, i do install the new version
of RT in a separate server, to check if the upgrade will run without
problem. And when all is ready, i do the upgrade in the production server.

That’s why o could compare the 2 version of configuration, as i show you
in the folowwing:

In my test version (5.0.7beta1), i have some line as you indicate me:

‘approvals’ => {
‘transitions’ => {
‘resolved’ => [
‘new’,
‘open’,
‘stalled’,
‘rejected’,
‘deleted’
],

…/…

                                   '' => [
                                           'new',
                                           'open',
                                           'resolved'
                                         ],
                                   'rejected' => [
                                                   'new',
                                                   'open',
                                                   'stalled',
                                                   'resolved',
                                                   'deleted'
                                                 ],

But in the production server (5.0.1), the configuration is similar :

{
‘approvals’ => {
‘actions’ => [
‘new → open’,
{
‘update’ => ‘Respond’,
‘label’ => ‘Open It’
},

…/…

                'transitions' => {
                                   '' => [
                                           'new',
                                           'open',
                                           'resolved'
                                         ],

Is the more recent version more strict during the checking of the
Lifecycles?

Thank’s a lot.

Regards

It’s OK for a transition to have a blank entry. The warning is about the lifecycle name, which comes from the entry at the very top of each separate lifecycle. So a default RT would have ‘default’, ‘assets’, and ‘approvals’. That warning is saying it’s finding a lifecycle without a name at that level.

The warning itself is not new, it’s been there since at least RT 4.2. So it’s strange that you would see it now.

Dear Jim

That’s why i very surprise for why is this upgrade sending me this
warning. As i use Rt for more than twelve years, since version 4.0.5!

I send you all of the lycicles configuration. It’s very similar a the
5.0.1 version, and I could not see this typoe of tipo “” => as you
mention me befire. Maybe i’m blind…

Thank’s a lot for your help!

Regards

(Attachment lifecycles-5.0.7beta1.conf is missing)

Dear Jim

That’s why i very surprise for why is this upgrade sending me this
warning. As i use Rt for more than twelve years, since version 4.0.5!

I send you all of the lycicles configuration. It’s very similar a the
5.0.1 version, and I could not see this typoe of tipo “” => as you
mention me befire. Maybe i’m blind…

Thank’s a lot for your help!

Regards

Lifecycles conf:

{
‘default’ => {
‘active’ => [
‘open’,
‘stalled’
],
‘actions’ => [
‘new → open’,
{
‘update’ => ‘Respond’,
‘label’ => ‘Open It’
},
‘new → resolved’,
{
‘label’ => ‘Resolve’,
‘update’ => ‘Comment’
},
‘new → rejected’,
{
‘update’ => ‘Respond’,
‘label’ => ‘Reject’
},
‘new → deleted’,
{
‘label’ => ‘Delete’
},
‘open → stalled’,
{
‘label’ => ‘Stall’,
‘update’ => ‘Comment’
},
‘open → resolved’,
{
‘update’ => ‘Comment’,
‘label’ => ‘Resolve’
},
‘open → rejected’,
{
‘label’ => ‘Reject’,
‘update’ => ‘Respond’
},
‘stalled → open’,
{
‘label’ => ‘Open It’
},
‘resolved → open’,
{
‘label’ => ‘Re-open’,
‘update’ => ‘Comment’
},
‘rejected → open’,
{
‘update’ => ‘Comment’,
‘label’ => ‘Re-open’
},
‘deleted → open’,
{
‘label’ => ‘Undelete’
}
],
‘inactive’ => [
‘resolved’,
‘rejected’,
‘deleted’
],
‘transitions’ => {
‘resolved’ => [
‘new’,
‘open’,
‘stalled’,
‘rejected’,
‘deleted’
],
‘new’ => [
‘open’,
‘stalled’,
‘resolved’,
‘rejected’,
‘deleted’
],
‘open’ => [
‘new’,
‘stalled’,
‘resolved’,
‘rejected’,
‘deleted’
],
‘’ => [
‘new’,
‘open’,
‘resolved’
],
‘rejected’ => [
‘new’,
‘open’,
‘stalled’,
‘resolved’,
‘deleted’
],
‘deleted’ => [
‘new’,
‘open’,
‘stalled’,
‘resolved’,
‘rejected’
],
‘stalled’ => [
‘new’,
‘open’,
‘resolved’,
‘rejected’,
‘deleted’
]
},
‘initial’ => [
‘new’
],
‘rights’ => {
‘* → deleted’ => ‘DeleteTicket’,
‘* → ’ => ‘ModifyTicket’
},
‘defaults’ => {
‘denied’ => ‘rejected’,
‘reminder_on_resolve’ => ‘resolved’,
‘on_create’ => ‘new’,
‘approved’ => ‘open’,
‘reminder_on_open’ => ‘open’
}
},
‘approvals’ => {
‘active’ => [
‘open’,
‘stalled’
],
‘actions’ => [
‘new → open’,
{
‘label’ => ‘Open It’,
‘update’ => ‘Respond’
},
‘new → resolved’,
{
‘update’ => ‘Comment’,
‘label’ => ‘Resolve’
},
‘new → rejected’,
{
‘label’ => ‘Reject’,
‘update’ => ‘Respond’
},
‘new → deleted’,
{
‘label’ => ‘Delete’
},
‘open → stalled’,
{
‘update’ => ‘Comment’,
‘label’ => ‘Stall’
},
‘open → resolved’,
{
‘update’ => ‘Comment’,
‘label’ => ‘Resolve’
},
‘open → rejected’,
{
‘update’ => ‘Respond’,
‘label’ => ‘Reject’
},
‘stalled → open’,
{
‘label’ => ‘Open It’
},
‘resolved → open’,
{
‘label’ => ‘Re-open’,
‘update’ => ‘Comment’
},
‘rejected → open’,
{
‘label’ => ‘Re-open’,
‘update’ => ‘Comment’
},
‘deleted → open’,
{
‘label’ => ‘Undelete’
}
],
‘transitions’ => {
‘stalled’ => [
‘new’,
‘open’,
‘rejected’,
‘resolved’,
‘deleted’
],
‘deleted’ => [
‘new’,
‘open’,
‘stalled’,
‘rejected’,
‘resolved’
],
‘rejected’ => [
‘new’,
‘open’,
‘stalled’,
‘resolved’,
‘deleted’
],
‘’ => [
‘new’,
‘open’,
‘resolved’
],
‘new’ => [
‘open’,
‘stalled’,
‘resolved’,
‘rejected’,
‘deleted’
],
‘open’ => [
‘new’,
‘stalled’,
‘resolved’,
‘rejected’,
‘deleted’
],
‘resolved’ => [
‘new’,
‘open’,
‘stalled’,
‘rejected’,
‘deleted’
]
},
‘inactive’ => [
‘resolved’,
‘rejected’,
‘deleted’
],
‘defaults’ => {
‘reminder_on_resolve’ => ‘resolved’,
‘on_create’ => ‘new’,
‘reminder_on_open’ => ‘open’
},
‘rights’ => {
’ => ‘ModifyTicket’,
→ rejected’ => ‘ModifyTicket’,
‘* → deleted’ => ‘DeleteTicket’
},
‘initial’ => [
‘new’
]
},
‘assets’ => {
‘rights’ => {
‘* → ’ => ‘ModifyAsset’
},
‘defaults’ => {
‘on_create’ => ‘new’
},
‘initial’ => [
‘new’
],
‘type’ => ‘asset’,
‘inactive’ => [
‘recycled’,
‘stolen’,
‘deleted’
],
‘transitions’ => {
‘new’ => [
‘allocated’,
‘in-use’,
‘stolen’,
‘deleted’
],
‘stolen’ => [
‘allocated’
],
‘deleted’ => [
‘allocated’
],
‘recycled’ => [
‘allocated’
],
‘’ => [
‘new’,
‘allocated’,
‘in-use’
],
‘in-use’ => [
‘allocated’,
‘recycled’,
‘stolen’,
‘deleted’
],
‘allocated’ => [
‘in-use’,
‘recycled’,
‘stolen’,
‘deleted’
]
},
‘actions’ => {
→ in-use’ => {
‘label’ => ‘Now in-use’
},
‘* → stolen’ => {
‘label’ => ‘Report
stolen’
},
‘* → allocated’ => {
‘label’ => ‘Allocate’
},
‘* → recycled’ => {
‘label’ => ‘Recycle’
}
},
‘active’ => [
‘allocated’,
‘in-use’
]
}
}