Assigned User Name is Blank

I am having a strange issue where the Assigned To field is blank on all modules. Several things seem to fix:

  • Repair and Rebuild
  • Rebuild Relationships
  • Deleting the cache/Relationships/relationships.cache.php file

While all these temporarily fix the issue comes back. I don’t see anything in the error log and I’ve tried disabling any after_ui_frame and similar logic hooks.

Any suggestions would be appreciated on where to look.

Thanks

You don’t even say your version of SuiteCRM…

And make sure you are within the requirements of the Compatibility Matrix.

In the Quick Repair and Rebuild, did you scroll down to the bottom to see if it has a button to fix the vardefs (this button only shows when a mismatch is detected)?

We are on Suite 7.8.5 for this instance and the good on all of the Compatibility checks. It must be something with the server settings because both local copies and on another server don’t seem to experience the same error. And yes repair and rebuild doesn’t have any SQL inconsistencies at the bottom.

Without any errors to go off of debugging this one is pretty tough so may just end up migrating to another server.

I wonder if you have the same problem as this user here

https://suitecrm.com/forum/suitecrm-7-0-discussion/15142-assigned-to-field-not-visible-across-multiple-modules-in-studio

It is indeed, strange.

Now that you mention debugging, the ideal way to work this would be to set up a debugger and step through the code to identfy the issue precisely. I don’t know if that is something that looks feasible to you or not…

I appreciate the response and the link.

I’m going to try and increase the memory limit in php.ini and reboot the server tonight. Seems also rebooting Apache solves the problem temporarily.

Thanks again. Hopefully I’ll have an update.

same problem here… and it’s driving me crazy!

Have you found where is this error coming from??

Or have you found an easier solution, apart from rebuilding relationships?

thanks!

hi! just in case somebody is getting nuts because of this problem…

I’ve found a way to fix it… not sure if definitely but it’s working for me

In the file include/EditView/EditView2.php

inside function process

At Line 569 we overwrite $this->focus->assigned_user_name when !empty($this->focus->assigned_user_id) and it seems the get_assigned_user_name function is failing.

But I’ve found that $this->focus->assigned_user_name has a value already so I think we don’t have to overwrite it… always…

So I have added the condition empty($this->focus->assigned_user_name) to the current condition…

So, that line gets:

 if (!empty($this->focus->assigned_user_id) && empty($this->focus->assigned_user_name) ) {

I hope it helps!

1 Like

About the previous post… as a quick fix is valid but I’ve found a side effect, sometimes you don’t get the full name but the username… this is valid for me because, at least, my users don’t get the required field error (for the assigned user field) when they are saving.

But I felt I could do it better so I kept researching :wink:

So I removed the empty($this->focus->assigned_user_name) condition and got into the get_assigned_user_name function.

I placed an echo to see what was going on:

echo($assigned_user_id . " - " .$saved_user_list[$assigned_user_id] . "<br />");

This showed that I saw that $saved_user_list[$assigned_user_id] was empty for some users and had the full name for others…

I suppose that the error is on the cache construction of {user_array} value… I didn’t want to go further, so I decided to clean that cache value to rebuild it… so I created a function to clean that cache value and get_assigned_user_name function ended as:


function get_assigned_user_name($assigned_user_id, $is_group = '')
{
    static $saved_user_list = null;
    
    if (empty($saved_user_list)) {
    	$saved_user_list = get_user_array(false, '', '', false, null, $is_group);
    }
//    echo($assigned_user_id . " - " .$saved_user_list[$assigned_user_id] . "<br />");
    
    if (isset($saved_user_list[$assigned_user_id])) {
        return $saved_user_list[$assigned_user_id];
    }
       //Added code
   	clear_user_array_from_cache(false, '', '', false, null, $is_group);
   	$saved_user_list = get_user_array(false, '', '', false, null, $is_group);
   	if (isset($saved_user_list[$assigned_user_id])) {
   		return $saved_user_list[$assigned_user_id];
        }
        //End Added code

    return '';
}

function clear_user_array_from_cache($add_blank = true, $status = 'Active', $user_id = '', $use_real_name = false, $user_name_filter = '', 
     $portal_filter = ' AND portal_only=0 ', $from_cache = true){
	$name = $add_blank.$status.$user_id.$use_real_name.$user_name_filter.$portal_filter;
	sugar_cache_clear("{user_array}:{$name}");
}

Yes, not an optimal solution, but now it’s loading full names.

I will report any bug or side effect if I notice something!

this didn’t work so I got back to the previous solution…

Hello,
@javitoron @javitoron @shad
solve this issue? How?
I have the same problem

Riccardo

Hello Riccardo,

We actually ran into this again somewhat recently again ourselves.

I believe the actual root of the problem lies with issues regarding file and or session caching.

In our case a change into a multi-tenent architecture caused differrences in Session information between the two web servers. Switching to a shared Redis host helped. As a heads up I also had this issue when space was running out on the server.

The key to this issue is that the user id is populated and not the name.

Hello,
yes after 2 week of test
we solve this issue with share hosting plan… incredible!

Riccardo