Like this:

You may experience the following when trying to add a few of this month’s updates to your deployments.

No content was available for this update for the languages you selected.

The symptom is that all of your other updates will download without a problem, only a few will have this warning. Furthermore, these updates with issues do not show any special error messages when viewed in the patchdownloader.log.

The reason for this is that if you deploy your updates in English only, you will find that there are no content files available in English. You can verify the available languages by clicking the updates themselves in the updates list.

‘Applicable Languages : Arabic’ DOH!

This means that the update source is not available in the language you specified while Deploying Updates (perhaps in your templates?).

But how to we deal with this?

Well, if the update refers to a specific foreign language IME (like the one for Chinese character input below) and your organization doesn’t deploy in Chinese, then you can safely ignore it. For the other updates, it is more a case of knowing your organization. If you might deploy, or don’t know if you are deploying in the Middle East, you may be safer just downloading and deploying the content.

If anyone is curious, these were the problem updates for this month, and the associated language:

Update for Microsoft Office 2010 (KB 2598285)

Arabic

Update for Microsoft Powerpoint viewer 2010 (KB 2553351)

Arabic

Security update for Microsoft Office 2010 (KB 2687413)

Taiwan Chinese

Kudos to Wayne Hughes and Jeff Renfroe for helping me to understand this.

Ah yes, who doesn’t love these pretty red icons. Like little Christmas ornaments. Anyway, if you’re like me, you want an all-green and all-happy SCCM Summary page, and not just because you have a scheduled task or Status Filter to reset counts every thirty minutes. (If you’re doing this, consider yourself admonished!).

So, why does this happen and what does ‘The DELETE statement conflicted with the REFERENCE constraint’ mean? We’re not DBAs you know!

Well, you will see this sort of message most often if you have the regularly scheduled SCCM Maintenance tasks turned on, specifically the ‘Delete Obsolete Client Data’ Task. What is happening is that on the appointed schedule, SCCM attempts to delete all obsolete clients. However, some Constraint is keeping the operation from completing.

I’ve seen this commonly when the obsolete computer to be removed is still referenced in a Computer Association. Uh-oh! As you will see in the snippet below from the smsdbmon.log file , the StateMigrationAssociation Table is specifically mentioned in the SQL Error message. It tried to help us, it really did.

We would see this message every night at first (later every three days when I rescheduled the task because I was sick of seeing the messages. Shame shame, I know!) The message would repeat three sets of times, once for each ItemKey, (34879, 35618, 35975). Well, unfortunately for us, SCCM doesn’t natively list the StateMigration ItemKey in the console for our easy deletion.

However, it turns out that if we fire up SQL and then query the dbo.System_DISC table, we can find the SCCM Resource Name! (Thanks go out to Vivian Kiarie, she is an amazing SQL DBA and Architect, and very patient as well).

Simply read through your smsdbmon.log for the item keys listed in the error, and add them to the paranthesis at the end.

select * from dbo.System_DISC where ItemKey in (34879,35618,35975)

Note the Name0 Column. This is how the association will appear in the SCCM Console.

Now, open SCCM and go to the Computer Associations area, and delete the offending Computer Associations. You may find that the Resource in question is either the Source or the Destination for the Computer Association. No matter, so long as the data has been restored, it is safe to remove the association and get on with life.

The next time that the Delete Obsolete Client Discovery Data Task runs, these records will be removed once and for all.