diff --git a/TinfoilVibeServer.sln.DotSettings.user b/TinfoilVibeServer.sln.DotSettings.user
index c13272f..36c18d7 100644
--- a/TinfoilVibeServer.sln.DotSettings.user
+++ b/TinfoilVibeServer.sln.DotSettings.user
@@ -87,6 +87,8 @@
ForceIncluded
ForceIncluded
ForceIncluded
+ ForceIncluded
+ ForceIncluded
ForceIncluded
ForceIncluded
ForceIncluded
diff --git a/TinfoilVibeServer/Services/IndexBuilderService.cs b/TinfoilVibeServer/Services/IndexBuilderService.cs
index c00b2b3..e56b97e 100644
--- a/TinfoilVibeServer/Services/IndexBuilderService.cs
+++ b/TinfoilVibeServer/Services/IndexBuilderService.cs
@@ -119,9 +119,11 @@ public sealed class IndexBuilderService: IHostedService
var fileName =Uri.EscapeDataString($"{name}[{titleId}][v{versionNumberParsed}][{patchOrApp}].nsp");
var url = $"{baseUri.ToString().TrimEnd('/')}/{fileName}";
- if (Uri.IsWellFormedUriString(url, UriKind.Absolute))
+ var isWellFormed = Uri.TryCreate(url, UriKind.Absolute, out Uri? parsedUri);
+
+ if (isWellFormed && parsedUri != null)
{
- fileDtos.Add(new FileDto(url, e.Size));
+ fileDtos.Add(new FileDto(parsedUri.AbsoluteUri, e.Size));
}
else
{
diff --git a/TinfoilVibeServer/Services/SnapshotService.cs b/TinfoilVibeServer/Services/SnapshotService.cs
index 35486f1..81e400d 100644
--- a/TinfoilVibeServer/Services/SnapshotService.cs
+++ b/TinfoilVibeServer/Services/SnapshotService.cs
@@ -508,7 +508,8 @@ public sealed class SnapshotService : IDisposable, ISnapshotService, IHostedServ
_logger.LogWarning("Duplicate hash found in snapshot: {Hash}, {OldPath}, {newPath}", fileEntry.Hash, value, fileEntry.Path);
}
- if (!File.Exists(fileEntry.Path))
+ var nspOrArchivePath = fileEntry.Path.Split(ArchivePathSeparator)[0];
+ if (!File.Exists(nspOrArchivePath))
{
_logger.LogWarning("Nonexistent entry found: {Path}", fileEntry.Path);
continue;