Can't delete profile picture

yundlu316
Kilo Guru

I'm trying to get a better sense of how the Profile picture works in Service Portal and uploaded a random profile picture, which shows up great:

find_real_file.png

My issue is when I delete the profile pic from sys_attachment (both the entry that starts with "thumb..." and the ZZ_YYlive_profile), clear my browser cache, and refresh my page, the profile page looks like this:

find_real_file.png

At first I didn't notice anything wrong with the above screenshot, but after impersonating another user, I noticed that the font awesome user icon is missing from the large avatar, and my initials are missing from the smaller avatar in the header: 

find_real_file.png

When I look inside the console for my profile, I notice that for the large avatar, there's still a sys_id associated with my profile picture even though I've deleted it completely from the sys_attachment table:

find_real_file.png

Am I missing a step in this?  If a user uploads a picture but then deletes it, how can they get rid of the sys_id that looks to still be rending a "blank" photo?

 

 

1 ACCEPTED SOLUTION

yundlu316
Kilo Guru

Hey Everyone,

I opened a HI Ticket and the technician helped me solve the issue.  This issue was completely my fault; should not delete profile pictures directly from the sys_attachment table for anyone who's facing the same problem.  Here is the solution that fixed it:

 

The below KB article documents how to delete/update user profile pictures:
https://hi.service-now.com/kb_view.do?sysparm_article=KB0687598

The delete should be performed from the live_profile table.

Still using the steps above I was not able to empty the photo field for the corrupt record and I had to run 2 clean up scripts:

Clear photo value in live profile:

var gr = new GlideRecord('live_profile');
gr.addQuery('sys_id', '0280fc77dba4d700af88f5861d961971');
gr.query();
while(gr.next())
{
gs.print("Updating user"+ gr.name);
gs.print("Actual Photo"+ gr.photo);
gr.photo = '';
gr.setWorkflow(false);
gr.update();
}


Clear photo value in sys_user:

var gr = new GlideRecord('sys_user');
gr.addQuery('sys_id', '62826bf03710200044e0bfc8bcbe5df1');
gr.query();
while(gr.next())
{
gs.print("Updating user"+ gr.name);
gs.print("Actual Photo"+ gr.photo);
gr.photo = '';
gr.setWorkflow(false);
gr.update();
}


After clearing the cache using cache.do everything was back to order.

View solution in original post

8 REPLIES 8

sachin_namjoshi
Kilo Patron
Kilo Patron


1) Navigate to live_profile.list 
2) Search for the User whose photo you want to remove or edit. 
3) Go into the record and click the Delete button under the photo. 
4) Save the record. 

 

Regards,

Sachin

Hi Sachin, Thanks for this, but I actually already did this and it's still not working correctly:

 

find_real_file.png

did you tried cache.do after deleting profile picture?

 

Regards,

Sachin

yes I did that as well