cube-js/cube · error · std::io::Error (ErrorKind::Other)
e.to_string() (auth error message wrapped in io::Error)
Error message
e.to_string() (auth error message wrapped in io::Error)
What it means
The Cube Store MySQL protocol server's authentication callback: the configured authenticator rejected the credentials, and the authentication error is wrapped into an io::Error so the wire protocol layer can return it to the client. The authenticator's original message (the meaningful part) is carried in the error string.
Source
Thrown at rust/cubestore/cubestore/src/mysql/mod.rs:182
);
}
Ok(())
}
async fn on_auth<'a>(&'a mut self, user: Vec<u8>) -> Result<Option<Vec<u8>>, Self::Error>
where
W: 'async_trait,
{
self.user = if !user.is_empty() {
Some(String::from_utf8_lossy(user.as_slice()).to_string())
} else {
None
};
self.auth
.authenticate(self.user.clone())
.await
.map(|p| p.map(|p| p.as_bytes().to_vec()))
.map_err(|e| io::Error::new(io::ErrorKind::Other, e.to_string()))
}
}
pub struct MySqlServer {
address: String,
sql_service: Arc<dyn SqlService>,
auth: Arc<dyn SqlAuthService>,
close_socket_rx: RwLock<watch::Receiver<bool>>,
close_socket_tx: watch::Sender<bool>,
}
crate::di_service!(MySqlServer, []);
#[async_trait]
impl ProcessingLoop for MySqlServer {
async fn processing_loop(&self) -> Result<(), CubeError> {
let listener = TcpListener::bind(self.address.clone()).await?;
View on GitHub (pinned to 7d981676b3)
Solutions
- Check the username and password used to connect to Cube Store's MySQL port
- Verify the authenticator configuration on the Cube Store router
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at rust/cubestore/cubestore/src/mysql/mod.rs:182 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of cube-js/cube@7d981676b3 (2026-09-02).
Data as JSON: /api/errors/3a1412ee0cf9fffb.
Report an issue: GitHub.