we-promise/sure · error · SimplefinItem::Importer::RateLimitedError
SimpleFin rate limit: data refreshes at most once every 24 h
Error message
SimpleFin rate limit: data refreshes at most once every 24 hours. Try again later.
What it means
Error "SimpleFin rate limit: data refreshes at most once every 24 hours. Try again later." thrown in we-promise/sure.
Source
Thrown at app/models/simplefin_item/importer.rb:1043
end
if needs_update
Rails.logger.warn("SimpleFin: marking item ##{simplefin_item.id} requires_update due to fatal auth error(s): #{error_messages}")
simplefin_item.update!(status: :requires_update)
end
down = error_messages.downcase
# Detect and surface rate-limit specifically with a friendlier exception
if down.include?("make fewer requests") ||
down.include?("only refreshed once every 24 hours") ||
down.include?("rate limit")
Rails.logger.info("SimpleFin: raising RateLimitedError for item ##{simplefin_item.id}: #{error_messages}")
ActiveSupport::Notifications.instrument(
"simplefin.rate_limited",
item_id: simplefin_item.id,
message: error_messages
)
raise RateLimitedError, "SimpleFin rate limit: data refreshes at most once every 24 hours. Try again later."
end
# Fall back to generic SimpleFin error classified as :api_error
Rails.logger.error("SimpleFin fatal API error for item ##{simplefin_item.id}: #{error_messages}")
ActiveSupport::Notifications.instrument(
"simplefin.fatal_error",
item_id: simplefin_item.id,
message: error_messages
)
raise Provider::Simplefin::SimplefinError.new(
"SimpleFin API errors: #{error_messages}",
:api_error
)
end
# Classify exceptions into simple buckets for UI stats
def classify_error(e)
msg = e.message.to_s.downcaseView on GitHub (pinned to e69894adb9)
When it happens
Trigger: Thrown at app/models/simplefin_item/importer.rb:1043 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of we-promise/sure@e69894adb9 (2026-08-21).
Data as JSON: /api/errors/0183ac5defdc3a44.
Report an issue: GitHub.