instructure/canvas-lms · warning · GoogleDrive::ConnectionException
No config check
Error message
No config check
What it means
GoogleDrive::Connection.config_check is the interface every external tool config must implement to validate settings; the Google Drive integration does not implement a real check and unconditionally raises ConnectionException. Note the source also has a latent bug: `ConnectionException("No config check")` calls the class as a method rather than `raise`, so the literal raise is what surfaces here. Callers should treat 'no config check' as unsupported, not as a broken config.
Solutions
- Do not treat this raise as a config failure — catch ConnectionException for this integration and consider the config valid/unchecked
- Avoid calling config_check for GoogleDrive; there is no supported validation
- Patch locally to `return true` if you need config_check to succeed
Example fix
// before valid = GoogleDrive::Connection.config_check(settings) // after begin valid = GoogleDrive::Connection.config_check(settings) rescue ConnectionException valid = true # google drive provides no config check end
Defensive patterns
Strategy: try-catch
Try / catch
begin GoogleDrive::Connection.config_check(settings) rescue ConnectionException # no-op: integration defines no config check end
Prevention
- Only call config_check on integrations that implement it
- Treat 'No config check' as unsupported, not invalid
- Rescue around generic per-plugin validation loops
When it happens
Trigger: Account/Canvas settings code invoking GoogleDrive::Connection.config_check(settings) to validate a Google Drive plugin configuration.
Common situations: Admin saving Google Drive plugin settings and Canvas running validation; generic tool-config validation loops that iterate all registered integrations.
Related errors
- A course did not pass validation
- A # user did not pass validation (user: # , # : # , error…
- A maximum of 50 assessees can be provided at once
- A maximum of 50 assessors can be provided at once
- A (templated) course did not pass validation
AI-assisted analysis of instructure/canvas-lms@1c9f0bb801 (2026-09-15).
Data as JSON: /api/errors/6b6ab543e7bc6f91.
Report an issue: GitHub.
Appendix: source
Thrown at gems/google_drive/lib/google_drive/connection.rb:107
email_address: user_id,
type: "user",
role: "writer"
)
drive.create_permission(normalize_document_id(document_id), new_permission)
rescue Google::Apis::Error => e
raise ConnectionException, exception_message(e)
end
end
def authorized?
drive.get_about(fields: "user")
true
rescue ConnectionException, NoTokenError, Google::Apis::Error
false
end
def self.config_check(_settings)
raise ConnectionException("No config check")
end
def self.config=(config)
unless config.is_a?(Proc)
raise "Config must be a Proc"
end
@config = config
end
def self.config
@config.call
end
private
def exception_message(exception)
return "Google Drive connection timed out" if exception.cause.is_a?(Faraday::TimeoutError)View on GitHub (pinned to 1c9f0bb801)