A pivot refresh will fail if after refreshing any of the pivot tables that use that pivot cache would overlap another pivot table object or other bounded object. Excel will try to create extra rows and columns to make space for the resized table, but this is not always straightforward.
In that case, RefreshAll will also fail to update the table. Check all sheets that contain a pivot table, and try to ensure each pivot table has space to expand if needed.
If you're not sure which table uses which cache, you can use the following script:
Sub PivotInfo()
Dim i As Integer, wSheet As Worksheet, pTable As PivotTable
Worksheets.Add
Range("A1") = "Pivot table name"
Range("B1") = "Location"
Range("C1") = "Source information"
i = 1
For Each wSheet In Worksheets
For Each pTable In wSheet.PivotTables
i = i + 1
Cells(i, 1).Value = pTable.Name
Cells(i, 2).Value = wSheet.Name + "!" + pTable.TableRange1.Address
Cells(i, 3).Value = pTable.SourceData
Next pTable
Next wSheet
End Sub