Solutions to the most frequently encountered issues with Sports API Hub. Each entry describes the problem, explains the cause, and provides step-by-step resolution.
1. 404 Errors on Entity Pages
Problem: Game, team, or player pages return a 404 “Not Found” error, even though the data exists in the admin.
Cause: WordPress permalink rewrite rules need to be flushed. This commonly happens after plugin activation, updates, or changing the permalink structure in plugin settings.
Solution:
- Navigate to Settings > Permalinks in your WordPress admin.
- Without changing anything, click Save Changes.
- Visit the entity page again — it should load correctly.
Prevention
Always flush permalinks after activating the plugin, updating it, or changing sport base slugs in WordPress Settings > Permalinks. See Permalinks for details.
2. Blank Admin Pages
Problem: An admin page under Sports API Hub, Hub Data, API & Import, or Settings & Tools loads with a blank content area (the WordPress admin frame is visible but the page content is empty).
Cause: A JavaScript error is preventing the Vue.js admin interface from mounting. Common causes include:
- Conflict with another plugin’s JavaScript
- Browser extension blocking scripts
- PHP error outputting before the page renders
Solution:
- Open your browser’s developer tools (F12 or right-click > Inspect).
- Check the Console tab for JavaScript errors.
- If errors reference another plugin, temporarily deactivate that plugin to confirm the conflict.
- Disable browser extensions (especially ad blockers and script blockers) and reload.
- Check Tools > Site Health for PHP errors.
If the issue persists after isolating conflicts, contact support with the console error messages.
3. Missing Team or League Logos
Problem: Team or league logos do not appear on frontend pages or in the admin.
Cause: One of the following:
- The PHP GD or Imagick extension is not installed on your server.
- Media/image loading is disabled in the API Config settings.
- Logo import has not been run yet for the affected teams.
Solution:
- Check that your server has the GD or Imagick PHP extension installed. You can verify this in Tools > Site Health > Info > Server or by asking your hosting provider.
- Navigate to API & Import > API Config and verify that the Media section has image loading enabled.
- Run the Teams import task from API & Import > Import for the affected season to fetch team logos.
API images require authentication headers and cannot be hotlinked. The plugin downloads and converts images to WebP format stored locally in wp-content/uploads/anwphub/.
4. Slow Imports
Problem: Import tasks take a long time or seem to stall.
Cause: Several factors can slow imports:
- API rate limits — a paid RapidAPI subscription is required. Higher-tier plans provide faster rate limits.
- Large leagues — leagues with many teams and seasons require more API calls.
- Server performance — shared hosting may have slow outbound HTTP connections.
Solution:
- Import one league/season at a time. Avoid running multiple import tasks simultaneously.
- Import during off-peak hours. API response times are generally faster outside peak usage periods.
- Consider a higher API plan tier. Higher-tier plans provide more requests per second, which speeds up batch imports.
- Check sub-options. In API & Import > API Config > Import section, you can disable sub-imports (lineups, team stats, incidents, highlights) you do not need. Fewer sub-imports = fewer API calls per game.
Automatic Rate Limit Handling
The import system processes items in batches and automatically handles rate limits. If a per-second limit is hit, the plugin waits and retries. If the daily limit is reached, the task stops and can be resumed the next day.
5. Data Not Updating
Problem: Game scores, standings, or other data appear outdated on the frontend.
Cause: One or more of the following:
- Background sync is not enabled.
- Object cache is serving stale data.
- Page cache is serving a stale HTML page.
Solution:
- Enable background sync. Navigate to API & Import > API Config > Sync section and enable automatic sync for the data types you need (scores, standings, rosters). See Background Sync for details.
- Flush object cache. If you use Redis or Memcached, flush the cache. The plugin provides a cache flush option in Settings & Tools > Settings > Caching section.
- Flush page cache. Clear your page cache plugin (LiteSpeed, WP Super Cache, etc.) to regenerate frontend HTML.
- Manual re-update. For a single game, use the Re-update row action in Hub Data > Games admin list to re-fetch its data from the API.
6. Layout Builder Not Rendering
Problem: An entity page (game, team, or player) shows the basic default template instead of the Layout Builder layout.
Cause: The Layout Builder layout does not match the entity type, sport, or game state.
Solution:
- Check that a layout exists for the correct entity type, sport, and game state in Settings & Tools > Layout Builder.
- Verify the Entity Type matches (e.g., “Game” for game pages).
- Verify the Sport matches. A basketball game layout will not render for baseball games.
- For game pages, verify the Game State matches (upcoming, live, or finished). Each state has its own layout.
Layouts are per-sport — each sport has its own set of layouts for games, teams, players, and seasons. If no layout exists for a particular combination, the built-in default template renders instead. See Layout Builder for details.
7. Games Showing Wrong Time
Problem: Game times appear incorrect (usually several hours off from expected).
Cause: The automatic timezone conversion feature is disabled, so times display in UTC rather than the visitor’s local timezone.
Solution:
- Navigate to Settings & Tools > Settings > Display section.
- Enable the Automatic Timezone toggle.
- Save settings.
With this enabled, the plugin converts all displayed times from UTC to each visitor’s local timezone using their browser’s timezone detection.
If times are still wrong after enabling this feature, the issue may be with the source data from the API (rare). Check the raw game data in Hub Data > Games to compare.
8. Import Task Stuck or Failed
Problem: An import task shows an error or appears stuck (progress bar not advancing).
Cause: Common causes include:
- API timeout due to slow or unstable connection.
- Rate limit exceeded (daily limit reached).
- API returning unexpected data for a specific entity.
Solution:
- Cancel and retry. Click the cancel/stop button on the task, then restart it. The import system tracks progress and will resume from where it left off.
- Check for daily limit. If you see a “daily limit” error, wait until the next day (limits reset at midnight UTC) or upgrade your API plan.
- Check API status. The API provider may be experiencing downtime. Wait a few minutes and retry.
Resilient Import
Import tasks are designed to be resilient. If a single game or entity fails to import, the task logs the error, skips that item, and continues processing the rest of the batch. One failed item does not stop the entire import.
9. Enabling Debug Logging
When to use: If support asks you to provide import or sync logs, or if you need to troubleshoot API communication issues.
How to enable:
Add this line to your wp-config.php file (before the /* That's all, stop editing! */ line):
define( 'ANWPHUB_ENABLE_API_LOGGING', true );
This enables detailed logging of API requests, import batches, live score polling, and background sync operations to a database table. Logs are viewable by support when investigating issues.
Disable After Debugging
Logging is disabled by default to avoid unnecessary database writes. Only enable it when actively debugging, and remove the line when done.
Still Having Issues?
If none of these solutions resolve your problem:
- Check the API Errors page for API-specific error codes.
- Review the FAQ for answers to common questions.
- Contact support with details about your issue.
📚 Related
- FAQ — common questions and answers
- API Errors — API error codes and handling
- Getting Support — how to contact support
- API Configuration — API key and provider setup
- Caching — object cache and CDN configuration