Skip to content
Back to skills

1097 Troubleshooting 959faa99

ASecurity

**Problem**: Parameter names are not showing up in the generated API documentation.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
documentationjavakotlinspringdebugginggitapisecurityperformancedocumentation

Works with

  • api

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 1097-troubleshooting_959faa99 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 1097 Troubleshooting 959faa99?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 1097 Troubleshooting 959faa99
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-1097-troubleshooting-959faa99/badge)](https://www.skillsdirectory.com/skills/tools-only-1097-troubleshooting-959faa99)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Troubleshooting SpringDoc OpenAPI

## Common Issues and Solutions

### Parameter Names Not Appearing

**Problem**: Parameter names are not showing up in the generated API documentation.

**Solution**: Add `-parameters` compiler flag (Spring Boot 3.2+):

```xml
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <parameters>true</parameters>
    </configuration>
</plugin>
```

**Gradle equivalent**:
```gradle
tasks.withType(JavaCompile).configureEach {
    options.compilerArgs += ["-parameters"]
}
```

### Swagger UI Shows "Unable to render definition"

**Problem**: Swagger UI displays error "Unable to render definition".

**Solution**: Ensure `ByteArrayHttpMessageConverter` is registered when overriding converters:

```java
converters.add(new ByteArrayHttpMessageConverter());
converters.add(new MappingJackson2HttpMessageConverter());
```

**Alternative approach**: Check for missing message converter configuration in your WebMvcConfigurer or similar configuration.

### Endpoints Not Appearing in Documentation

**Problem**: API endpoints are not showing up in the generated OpenAPI specification.

**Solution**: Check these common issues:

1. **Package scanning configuration**:
   ```properties
   # Ensure this is set correctly
   springdoc.packages-to-scan=com.example.controller

   # Or multiple packages
   springdoc.packages-to-scan=com.example.controller,com.example.service
   ```

2. **Path matching configuration**:
   ```properties
   # Ensure paths match your endpoints
   springdoc.paths-to-match=/api/**,public/**
   ```

3. **Hidden endpoints**: Verify endpoints aren't marked with `@Hidden` annotation.

4. **Component scanning**: Ensure controllers are in packages that are component-scanned by Spring Boot.

### Security Configuration Issues

**Problem**: Spring Security blocks access to Swagger UI and OpenAPI endpoints.

**Solution**: Permit SpringDoc endpoints in Spring Security:

```java
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        return http
            .authorizeHttpRequests(auth -> auth
                .requestMatchers("/v3/api-docs/**", "/swagger-ui/**", "/swagger-ui.html").permitAll()
                .anyRequest().authenticated()
            )
            .build();
    }
}
```

### Maven/Gradle Build Issues

**Problem**: Build fails due to conflicting SpringDoc dependencies.

**Solution**: Ensure correct version compatibility:

```xml
<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.8.13</version>
</dependency>
```

For WebFlux applications:
```xml
<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webflux-ui</artifactId>
    <version>2.8.13</version>
</dependency>
```

### JavaDoc Integration Issues

**Problem**: JavaDoc comments are not appearing in the API documentation.

**Solution**: Add the therapi-runtime-javadoc dependency:

```xml
<dependency>
    <groupId>com.github.therapi</groupId>
    <artifactId>therapi-runtime-javadoc</artifactId>
    <version>0.15.0</version>
    <scope>provided</scope>
</dependency>
```

### Kotlin Integration Issues

**Problem**: Kotlin classes or functions are not properly documented.

**Solution**: Use `@field:` annotation prefix for Kotlin properties:

```kotlin
@field:Schema(description = "Book title", example = "Clean Code")
@field:NotBlank
val title: String = ""
```

### Custom Serialization Issues

**Problem**: Custom serialized fields are not appearing in the API documentation.

**Solution**: Ensure proper Jackson configuration:

```java
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JacksonConfig {

    @Bean
    public ObjectMapper objectMapper() {
        return new ObjectMapper();
    }
}
```

### Performance Issues

**Problem**: SpringDoc causes performance issues during startup.

**Solution**:
1. Use specific package scanning instead of scanning the entire classpath
2. Use path exclusions to filter out unwanted endpoints
3. Consider using grouped OpenAPI definitions

```java
@Bean
public GroupedOpenApi publicApi() {
    return GroupedOpenApi.builder()
        .group("public")
        .packagesToScan("com.example.controller.public")
        .pathsToMatch("/api/public/**")
        .pathsToExclude("/api/internal/**")
        .build();
}
```

### Version Compatibility Issues

**Problem**: SpringDoc works in development but not in production.

**Solution**:
1. Ensure consistent Spring Boot and SpringDoc versions
2. Check for environment-specific configurations
3. Verify production environment matches development setup

```properties
# Production-specific configuration
springdoc.swagger-ui.enabled=true
springdoc.api-docs.enabled=true
springdoc.show-actuator=true
```

### Error Response Documentation

**Problem**: Custom error responses are not properly documented.

**Solution**: Use `@Operation(hidden = true)` on exception handlers and define proper error response schemas:

```java
@ExceptionHandler(BookNotFoundException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
@Operation(hidden = true)
public ErrorResponse handleBookNotFound(BookNotFoundException ex) {
    return new ErrorResponse("BOOK_NOT_FOUND", ex.getMessage());
}

@Schema(description = "Error response")
public record ErrorResponse(
    @Schema(description = "Error code", example = "BOOK_NOT_FOUND")
    String code,

    @Schema(description = "Error message", example = "Book with ID 123 not found")
    String message
) {}
```

### Debugging Tips

1. **Check OpenAPI JSON directly**: Access `http://localhost:8080/v3/api-docs` to see the raw OpenAPI specification
2. **Enable debug logging**: Add `logging.level.org.springdoc=DEBUG` to application.properties
3. **Validate OpenAPI specification**: Use online validators like [Swagger Editor](https://editor.swagger.io/)
4. **Check SpringDoc version**: Ensure you're using a recent version with bug fixes

### Performance Optimization

1. **Reduce scope**: Use specific package scanning and path matching
2. **Cache configurations**: Reuse OpenAPI configurations where possible
3. **Group endpoints**: Use multiple grouped OpenAPI definitions instead of one large specification
4. **Disable unnecessary features**: Turn off features you don't use (e.g., actuator integration)

```properties
# Performance optimizations
springdoc.swagger-ui.enabled=true
springdoc.api-docs.enabled=true
springdoc.show-actuator=false
springdoc.writer-default-response-tags=false
springdoc.default-consumes-media-type=application/json
springdoc.default-produces-media-type=application/json
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.