Can't load Fund list with Power BI connector

Options

Strange problem.

I have a Power BI report that I use for annual giving statements (so I haven't used it in about a year). I loaded it up today and refreshed the data, and everything loaded except the Funds table, which gave me a 403 Forbidden error.

I can't figure out why this would be happening, as the user that I'm using for this report should have rights to that data. Here are some things I've tried/confirmed.

  • The connector is using the Fund List endpoint to load this data
  • I can successfully call the Fund List endpoint using the same user if I use the Try It button in the SKY API documentation
  • I can also successfully use get a list of funds using the List Funds action in Power Automate, using the same user
  • I tried recreating the Power BI connector from scratch
  • In analytics, these are showing up as blocked calls, but I can't get much more information about them

Any ideas?

Comments

  • Hey @Ben Regier,

    Is this the table you're using to connect to the funds?

    b8f97783489d37c2cc993252c0f10184-huge-im


  • @Matt Thacker
    Yes, that's the one.

  • @Ben Regier, I'm stumped with that one. No clue why it would give you a 403 on that table only. Only things I would suggest is perhaps clearing the credentials from Power BI and trying to reauthenticate. If that doesn't work, maybe crack open the PQ file from the connector in Visual Studio and spot check to make sure there's no issues with the endpoint.

    Is the authorization failing when you refresh from the desktop pbix file or is it failing in the Power BI Service refresh?

  • @Matt Thacker
    Yep, it's a weird one. I've tried clearing credentials. This is from a desktop pbix file.

    I am using a slightly restricted account for this report - one that can only see gifts from specific funds. And if I use another account to refresh the data, it works (but then my report contains gifts that it shouldn't…). So that instantly makes me think that maybe the restricted account really doesn't have access to that endpoint. But like I said, I can hit it successfully from every other place I've tried, and it worked last year with the same restricted account.

  • @Ben Regier it sounds like this is definitely related to the permissions of the consenting user (since it works with your account but not the limited-rights account). If you can provide any more detail about the restricted account (the BBID email address) I can route this to the team that owns this endpoint and we can investigate what's happening (assuming you haven't tracked it down yet). Feel free to message me directly with any details/screens if you'd like.

  • @Ben Lambert
    Thanks, I'll send some additional details your way.

  • Well, I think we figured out what was happening. Thanks to @Ben Lambert for the help troubleshooting.

    Power BI was fetching the funds in batches of 500. As expected, it was only returning funds that the user account had access to. The problem arose when the following things happened:

    • The last page of results only contained one fund
    • That fund happened to be a fund that the user account did not have access to

    Because it had nothing it could return, the API returned an error.

    I'm submitting a bug report. In the meantime, I brought the fund list into my report by exporting them to a csv file.

  • Blackbaud has fixed this now, so if there's anyone out there who was affected by this extremely unlikely edge case, you should be able to refresh your Fund list again!

Categories