“An error has occurred.” No record named, no field highlighted, no hint about what to do next. Anyone who has run Altru for a while has seen some version of that message, usually in the middle of a membership sale or a query that worked fine yesterday.
A vague message doesn’t mean the cause is unknowable. It means you have to collect the context yourself. Do that the same way every time and most of these errors turn out to fall into a few recognizable groups.
First, capture what the screen won’t tell you
The worst time to investigate an error is an hour later, from memory. Before anyone clicks away, write down:
- Exactly what they were doing. Not “selling a membership,” but “renewing a household membership with a gift card and a discount, from the daily sales screen.”
- The full text of the message, including anything behind a details link or expandable section if the dialog offers one. A screenshot is better than retyping.
- The record involved: constituent name or lookup ID, the query or report name, the batch number, the web form.
- Time, user login, and browser. These matter if you end up opening a case with Blackbaud.
- Whether it happens again. Try the same action once more. A one-time error and a repeatable one point in very different directions.
A shared form or a pinned note at each register makes this habit stick with seasonal staff, who are the people most likely to hit an error and least likely to know what to record.
Then narrow it down with three questions
Does it happen for one record, or for everything?
If the error only appears for one constituent, look at that record first. Common suspects are odd data: a household with an unusual relationship, a missing or malformed address, a membership with conflicting dates, or a duplicate record that confuses which constituent the transaction belongs to. Try the same action on a test constituent. If it works there, the problem is in the data, not the process.
Does it happen for one user, or for everyone?
When a supervisor can complete the action and a cashier can’t, suspect security roles and permissions. Altru doesn’t always say “you don’t have access to this”; sometimes the failure just looks like a generic error. Compare the two users’ roles before chasing anything else.
Did anything change recently?
Think about the last week: a new price list, a renamed program, an edited smart field, a query someone “cleaned up,” a retired fund or discount, a new browser version on the front desk machines. Generic errors often trace back to a configuration item that something else still depends on. A query built on a field that changed, or a web form pointing at an inactive item, can fail without naming the thing that moved.
Patterns worth recognizing
These aren’t definitive diagnoses, but they’re good first guesses:
- Queries and exports that error or time out often involve very large result sets, many output columns from one-to-many relationships, or smart fields that haven’t been refreshed. Try narrowing the filter or removing columns until it runs, then add things back one at a time.
- Batch commit failures usually come down to individual rows. If the batch shows exceptions, work through those rows rather than retrying the whole batch.
- Sales screen errors at checkout are frequently tied to a specific combination: a discount plus a payment type, a program with no capacity left, or an item that’s no longer active. Remove items from the order one at a time to find the one that triggers it.
- Errors that clear after logging out and back in, or in a different browser, point to a session or browser issue rather than your data. Clearing cache and checking that the browser is one Blackbaud currently supports is a reasonable first step.
- Errors everyone sees at once may not be yours at all. Check Blackbaud’s system status page before spending an hour on your configuration.
When to stop guessing and open a case
If the error is repeatable, isn’t limited to one record or one user, and nothing changed on your side, it’s time for Blackbaud support. They can see server-side detail that the message on your screen leaves out. The notes you captured above are exactly what they will ask for, and having them ready usually shortens the back-and-forth considerably.
Be specific in the case: steps to reproduce, the record or query involved, the exact message, and whether it happens for other users. “Altru gave an error” tends to get a request for more information; a clear reproduction tends to get an answer.
If you’re not sure whether a behavior is a bug or how Altru is designed to work, say so in the case. Support can confirm either way, and knowing it’s by design is still useful.
Build your own error log
Over time, the most useful tool is an internal list: the message, what caused it, and how it was resolved. A simple shared spreadsheet is enough. After a few months you’ll find the same handful of causes keep coming back, and your newer staff can look up an error before they escalate it.
It also gives you something concrete to bring to your Blackbaud account team or user community when the same vague message keeps costing your staff time. Specific examples of what went wrong, and what a clearer message would have said, are far more persuasive than a general complaint about error text.
Quick answers
Should staff keep retrying when an error appears?
Once is useful, to see whether it repeats. Repeated retries on a sale or payment risk duplicate transactions, so check the constituent’s recent revenue before trying again.
Can we see more detail about errors ourselves?
It depends on the error and your access level. If the dialog has a details option, capture it. Beyond that, Blackbaud support is the reliable route to the underlying cause.



