Sql-server – What causes “attribute key cannot be found when processing” errors

sql serversql server 2014ssas

I'm consistently getting variations on this error when I process the cube in my first SSAS project:

Errors in the OLAP storage engine: The attribute key cannot be found
when processing: Table: 'dbo_Transactions', Column: 'TransactionSK',
Value: '68342998'; Table: 'dbo_Transactions', Column:
'TransactionDateTimeUTC', Value: '7625037'. The attribute is
'Transaction SK'.

The phrase "attribute key cannot be found when processing" gets a number of Google hits, and several hits on Stack Overflow too (1, 2, 3). However, these address broken FKs, NULL values, or duplicate values (e.g., due to inconsistent case sensitivity). None of those situations apply.

There's just one table here: dbo.Transactions. It has fields TransactionSK and TransactionDateTimeUTC, both INT NOT NULL. As you can guess, the TransactionDateTimeUTC field is an FK to a DateTimes table, but there are no missing records, that's enforced in ETL and I've verified it in SQL.

What else could be causing this error message? Why does it list two fields, TransactionSK and TransactionDateTimeUTC? The similar situations I've bumped into so far consistently only reference a single field in the error message.

The table is being updated in near-real-time, including occasional deletions, though the two fields in question are not updated. If a record is removed from the table after SSAS scans one column and before it scans another, will that produce this error? Spot-checking a few problem records, they were not created in the middle of process the cube.

Best Answer

In my case, I had 2 tables: Sales and Company.

I had one record 'ABC' in Sales, but it was supposed to be in Company. Because of that, when I processed the package I got the same error.

To fix it, I just created a row with '0' Id in Company, and kept all the columns in that particular row as unknowns. After that, I processed the package and it worked.