PG&E MFA-related Errors
Incomplete Registration: Occurs when a utility customer hasn’t fully finished account registration.
Error code: incomplete_registration
API Response
Endpoint: GET /authorizations
"notes": [
{
"msg": "The utility account holder has not completed the registration process so data cannot be collected.",
"ts": "2025-07-01T18:11:48.168408+00:00",
"type": "incomplete_registration"
}
"status": "errored",
"status_message": "Account holder needs to finish registration"
Dashboard
Initial collection (visible in the No Meters filter):
MFA Missing: Can happen at both the authorization and meter levels—typically during refresh.
Error code: mfa_missing (note – mfa_missing can occur at the auth level and meter level (in the case of refreshes)
API Response
Endpoint: GET /authorizations
Initial collection:
"notes": [
{
"msg": "A live interaction occurred on the most recent login for this meter or authorization.",
"ts": "2025-07-01T20:17:19.971406+00:00",
"type": "live_interaction_occurred"
}
],
"status": "pending",
"status_message": "MFA choice needed",
Refresh:
"notes": [
{
"msg": "A multi-factor process will be needed. Please send re-authorization request to the user.",
"ts": "2025-06-20T02:56:08.048274+00:00",
"type": "access_code_needed"
},
"status": "errored",
"status_message": "Login will require code, so utility customer needs to be available.",
Dashboard
Initial collection (visible in the No Meters filter):
Refresh (visible in the Authorized filter):
MFA Timeout: Occurs if a live MFA interaction initiates but the user doesn’t complete it within the allotted time.
Error code: mfa_timeout
API Response
Endpoint: GET /authorizations
"notes": [
{
"msg": "A live interaction occurred on the most recent login for this meter or authorization.",
"ts": "2025-06-23T19:26:38.043182+00:00",
"type": "live_interaction_occurred"
},
{
"msg": "Multi-factor process timed out. Please send re-authorization request to the user.",
"ts": "2025-06-23T19:26:38.602860+00:00",
"type": "access_code_needed"
}
],
"status": "errored",
"status_message": "Timed out waiting for code. Please try again.",
Dashboard
Initial collection (visible in the No Meters filter):