@@ -301,6 +301,13 @@ fun LogViewerScreen(
301301 }
302302 }
303303 }
304+ } else if (state.logs.isEmpty() && state.isLoading) {
305+ Box(
306+ modifier = Modifier.fillMaxSize(),
307+ contentAlignment = Alignment.Center,
308+ ) {
309+ CircularProgressIndicator()
310+ }
304311 } else if (state.logs.isEmpty() && !state.isLoading) {
305312 val emptyMessage = when {
306313 state.isStreaming ->
@@ -365,9 +372,9 @@ fun LogViewerScreen(
365372 ) {
366373 itemsIndexed(
367374 state.logs,
368− key = { index, _ -> logKeys[index] },
375+ key = { index, _ -> logKeys.getOrElse(index) { "log_$index" } },
369376 ) { index, logEntry ->
370− val key = logKeys[index]
377+ val key = logKeys.getOrElse(index) { "log_$index" }
371378 LogEntryCard(
372379 logEntry = logEntry,
373380 isExpanded = expandedLogKey == key,