Sharepoint verifies if the connected user has the right to modify an item in the list


In an SPFX web part, I need to know if the connected user has the right to modify an item in the SharePoint list.

To do this, I use a PNP JS function:

sp.web.lists.getByTitle("ListTitle").items.getById(itemId).getCurrentUserEffectivePermissions().then((res) => {
    if (this._web.hasPermissions(res, PermissionKind.EditListItems)) {
        // user has right to modify item
    } else {
        // user has not right to modify item
    }    
});

Sometimes, this request works well, but sometimes it does not work without any explanation. In addition, the user needs specific permissions to call this request. And I want to be able to determine if any normal user has the right to modify any item on the list.

Is there a better way to do it? What am I doing wrong ?