Troubleshooting Guide¶
Version: Arctyk ITSM v0.6.0+
Last Updated: January 2026
Web server does not load website¶
This can happen for a number or reasons. The most common reason is that the code base has error or errors and is preventing the website from being served.
-
Check Docker logs for errors:
-
Correct any errors you find.
- Stop the container:
docker compose down - Rebuild and restart the container:
docker compose up -d --build
Tip
To stop or exit Docker logs, use CTRL + C
Common Linting Errors¶
Python/Django Linting (Pylance, Black, isort)¶
Expected 2 blank lines¶
Error:
Explanation: PEP 8 requires two blank lines before top-level functions and classes.
Solution:
# Bad
def first_function():
pass
def second_function(): # ❌ Only 1 blank line
pass
# Good
def first_function():
pass
def second_function(): # ✅ 2 blank lines
pass
Line too long¶
Error:
Explanation: Black enforces an 88-character line limit (configured in pyproject.toml).
Solution:
# Bad
very_long_variable_name = some_function_call(parameter1, parameter2, parameter3, parameter4)
# Good
very_long_variable_name = some_function_call(
parameter1, parameter2, parameter3, parameter4
)
Import not at top of file¶
Error:
Explanation: Imports should be at the top of the file, organized by stdlib → third-party → local.
Solution:
Auto-fix: Run isort to automatically organize imports:
Unused import¶
Error:
Solution: Remove the unused import or use it. Common false positives in Django:
# Models that are imported for relationship purposes
from .models import Ticket # noqa: F401 # Imported for FK relationships
Missing migrations¶
Error:
You have 3 unapplied migration(s). Your project may not work properly until you apply the migrations
Solution:
Template Linting (djLint)¶
Expected whitespace in template tags¶
Error:
Explanation: Template tags should have spaces inside the delimiters.
Solution:
Unclosed template tags¶
Error:
Solution: Ensure all Django template tags are properly closed:
Invalid template variable¶
Error:
Explanation: Variable doesn't exist in the template context.
Solution:
- Check view context passes the variable
- Use
{{ variable|default:"fallback" }}for optional variables - Verify variable name spelling
JavaScript/Node Linting (ESLint, Prettier)¶
Unexpected trailing comma¶
Error:
Explanation: Prettier may add/remove trailing commas based on configuration.
Solution: Let Prettier auto-format:
Or configure in .prettierrc:
'X' is defined but never used¶
Error:
Solution: Remove unused variables or prefix with underscore if intentionally unused:
CSS/SCSS Linting¶
Unknown at rule¶
Error:
Explanation: Using SCSS syntax in a file treated as CSS.
Solution: Ensure file has .scss extension and SCSS processor is configured.
Auto-fixing Linting Issues¶
Python:
# Format with Black
black src/
# Sort imports with isort
isort src/
# Both together (recommended)
black src/ && isort src/
Templates:
JavaScript:
Disabling Linting Rules¶
When absolutely necessary (use sparingly):
Python:
# Single line
result = long_function_call() # noqa: E501
# Entire file
# flake8: noqa
# Specific rule for block
# pylint: disable=line-too-long
code_here()
# pylint: enable=line-too-long
Django Templates:
JavaScript:
// Single line
// eslint-disable-next-line no-console
console.log("Debug message");
// Entire file
/* eslint-disable */
Warning
Only disable linting rules when you have a legitimate reason. Document why the rule is disabled with a comment.