---
title: "Troubleshooting"
description: "Common issues and their solutions when running Gogs"
icon: "wrench"
---
This page covers common problems you may encounter when installing, configuring, or running Gogs, organized by category.
## SSH
**Possible cause**: Gogs makes an HTTP request back to its own web service after every SSH push. If the server firewall or ISP blocks this loopback connection, the request will hang until it times out.
**Solution**: Ensure that the server can reach itself on the configured HTTP port. Check firewall rules and any network policies that may prevent loopback connections.
**Possible cause**: You moved the Gogs binary to a different location from where it was originally installed, so the Git hooks reference a stale path.
**Solution**: Go to the **Admin Panel** (`/admin`) and run these two tasks:
1. **Rewrite `.ssh/authorized_keys` file**
2. **Resync pre-receive, update and post-receive hooks of all repositories**
**Possible cause**: When using Git over SSH, Gogs relies on hook scripts to update the timeline and repository display. Several conditions can prevent these scripts from executing, especially when repositories are stored on a mounted device.
**Solution**:
- Ensure the mount point containing the repositories is **not** set as `noexec`. Run `mount` to check, and if necessary add the `exec` option to the mount point in `/etc/fstab`.
- For `vfat` (and possibly `cifs`) mounts, ensure the `uid`, `gid`, and `fmask` options permit the Gogs user (or a group it belongs to) to execute files.
- For network-mounted shares (NFS, Samba), ensure the server is not configured to disallow execution on the remote filesystem.
## Git
**Error**:
```text
fatal: 'XX/XX.git' does not appear to be a git repository
```
Or: pushed commits but the repository still shows as bare.
**Possible cause**: There are duplicate SSH keys in `~/.ssh/authorized_keys`. This commonly happens if you are (or were) running GitLab on the same system user.
**Solution**: Edit `~/.ssh/authorized_keys` and remove the old duplicate entry, keeping only the key that was added by Gogs.
**Error**:
```text
repo.NewRepoContext(fail to set git user.email):
```
**Possible cause**: On Windows, this occurs when Git Bash was installed without enabling the `cmd` option, so `git` is not available on the system PATH.
**Solution**: Reinstall Git for Windows and make sure the option to add Git to the system PATH (the `cmd` option) is enabled.
## Database
**Error**:
```text
Error 1071: Specified key was too long; max key length is 1000 bytes
```
**Possible cause**: The database is using the MyISAM storage engine, which has a shorter maximum key length than InnoDB.
**Solution**: After importing the initial schema, log into MySQL and switch the storage engine:
```sql
USE gogs;
SET GLOBAL storage_engine=INNODB;
```
Then re-run the Gogs installer at `http://localhost:3000/install`.
**Error**:
```text
Database setting is not correct: This server only supports the insecure old password authentication.
```
**Possible cause**: The MySQL user's password was only updated for the `@localhost` entry. A second entry in the user table (such as `@%`) still has the old-format password.
**Solution**: Update the password for all host entries of the MySQL user. See [this GitHub discussion](https://github.com/gogs/gogs/issues/385#issuecomment-54357073) for detailed steps.
**Error**: Pushing to a repository shows that the owner is not registered, or the `user` table does not exist.
**Possible cause**: Gogs may be running as a system service and loading a different SQLite3 file than expected (for example, a relative path resolved differently).
**Solution**: Use an **absolute path** for the SQLite3 database file in your `custom/conf/app.ini` configuration.
## Email
**Possible cause**: Google does not trust the server sending the email and requires additional verification.
**Solution**:
1. Visit [https://accounts.google.com](https://accounts.google.com) and log in.
2. Go to [https://accounts.google.com/DisplayUnlockCaptcha](https://accounts.google.com/DisplayUnlockCaptcha) and click **Continue**.
3. Copy the `ContinueSignIn` link from the Gogs server log and complete the sign-in.
4. Check your spam folder in case your mail provider flagged the messages.
**Error**:
```text
gomail: could not send email 1: Auth: 535
```
**Possible cause**: The SMTP password contains special characters that are not being interpreted correctly.
**Solution**: Wrap the password in single quotes in your `custom/conf/app.ini`:
```ini
PASSWORD = 'P4ยง$w0rd'
```
## Windows
**Error**:
```text
cygwin warning: MS-DOS style path detected ...
fatal: '/cygdrive/d/.../C:\Users\...' does not appear to be a git repository
```
**Possible cause**: Another shell (such as Cygwin) is installed on the system and its path style conflicts with the native Windows paths Gogs expects.
**Solution**: Start Gogs using the default Windows Command Prompt (`cmd.exe`) instead of Cygwin or other alternative shells.
**Error**:
```text
Resource interpreted as Stylesheet but transferred with MIME type application/x-css
```
**Possible cause**: The Windows registry has an incorrect `Content Type` value for the `.css` file extension.
**Solution**: Open the Windows Registry Editor, navigate to `HKEY_CLASSES_ROOT\.css`, and change the `Content Type` value to `text/css`.
## Other
**Possible cause**: This can happen for two reasons:
1. Nginx is trying to resolve `localhost` as an IPv6 address, causing a delay.
2. Gravatar avatar lookups are being attempted without a valid email address.
**Solution**:
1. Use the explicit hostname `127.0.0.1` instead of `localhost` during the initial setup at `http://gogs-server:3000/install`.
2. Either use a valid Gravatar email address for the administrator account or disable avatar lookup during the initial setup.
**Error**:
```text
Error 1062: Duplicate entry 'Unknown-Mac' for key 'UQE_public_key_name'
```
**Possible cause**: A very early version of Gogs had a unique constraint (`UQE_public_key_name`) on SSH key names in the `public_key` table. This constraint is no longer needed.
**Solution**: Manually delete the `UQE_public_key_name` unique index from the `public_key` table in your database.
**Solution**: Update the C library on your system:
```bash
sudo apt-get -t testing install libc6-dev
```
**Error**:
```text
[Macaron] PANIC: session(start): mkdir data: permission denied
```
**Possible cause**: Gogs creates a `data` subdirectory in the same directory as the Gogs binary. The process does not have write permission to that directory.
**Solution**: Ensure the user running Gogs has permission to create subdirectories in the directory where the Gogs binary is located.
**Error**:
```text
! [remote rejected] master -> master (hook declined)
```
**Possible cause**: Git is unable to execute the update hook script.
**Solution**: Make sure the `bash` shell is available on your system. All Gogs hook scripts require `bash` to run.