Acknowledgements
Describe the bug
AppStream.DescribeImages fails while reading the second page of images after updating github.com/aws/aws-sdk-go-v2/service/appstream from v1.63.0 to v1.64.0.
The first page is returned successfully, including a NextToken. The second request using that token fails during SDK deserialization even though the HTTP response status is 200.
The error is:
unexpected value type *cbor.Nil
This happens both with manual pagination and with appstream.NewDescribeImagesPaginator.
This appears to be a regression introduced by the AppStream SDK service module update from v1.63.0 to v1.64.0. In v1.63.0, the same code successfully reads both pages.
Regression Issue
Expected Behavior
DescribeImages should successfully deserialize all pages returned by AppStream.
Manual pagination and NewDescribeImagesPaginator should both return page 0 and page 1 without error, as they do with github.com/aws/aws-sdk-go-v2/service/appstream v1.63.0.
Current Behavior
With github.com/aws/aws-sdk-go-v2/service/appstream v1.64.0, the first page succeeds and the second page fails during deserialization.
Output:
2026/07/30 14:01:16 got page 0 with 25 images
2026/07/30 14:01:16 DescribeImages call WITHOUT pagination failed: operation error AppStream: DescribeImages, https response error StatusCode: 200, RequestID: ....., unexpected value type *cbor.Nil
2026/07/30 14:01:17 got page 0 with 25 images
2026/07/30 14:01:17 DescribeImages call with pagination failed: operation error AppStream: DescribeImages, https response error StatusCode: 200, RequestID: ...., unexpected value type *cbor.Nil
With github.com/aws/aws-sdk-go-v2/service/appstream v1.63.0, the same code succeeds:
2026/07/30 14:04:26 got page 0 with 25 images
2026/07/30 14:04:26 got page 1 with 24 images
2026/07/30 14:04:26 got page 0 with 25 images
2026/07/30 14:04:26 got page 1 with 24 images
Reproduction Steps
Reproduction Steps:
The account/region must contain enough private AppStream images to require pagination from DescribeImages.
package main
import (
"context"
"log"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/appstream"
"github.com/aws/aws-sdk-go-v2/service/appstream/types"
)
func main() {
cfg, err := config.LoadDefaultConfig(context.TODO())
if err != nil {
log.Fatal(err)
}
client := appstream.NewFromConfig(cfg)
err = noPaginator(client)
if err != nil {
log.Printf("DescribeImages call WITHOUT pagination failed: %v\n", err)
}
err = withPaginator(client)
if err != nil {
log.Printf("DescribeImages call with pagination failed: %v\n", err)
}
}
func noPaginator(client *appstream.Client) error {
var nextToken *string
var i int
for {
input := &appstream.DescribeImagesInput{
Type: types.VisibilityTypePrivate,
NextToken: nextToken,
}
resp, err := client.DescribeImages(context.TODO(), input)
if err != nil {
return err
}
log.Printf("got page %d with %d images", i, len(resp.Images))
if resp.NextToken == nil {
break
}
nextToken = resp.NextToken
i++
}
return nil
}
func withPaginator(client *appstream.Client) error {
input := &appstream.DescribeImagesInput{
Type: types.VisibilityTypePrivate,
}
paginator := appstream.NewDescribeImagesPaginator(client, input)
var i int
for paginator.HasMorePages() {
page, err := paginator.NextPage(context.TODO())
if err != nil {
return err
}
log.Printf("got page %d with %d images", i, len(page.Images))
i++
}
return nil
}
Possible Solution
This may be related to the AppStream service module switching protocol/deserialization behavior in v1.64.0.
Observed locally:
service/appstream v1.63.0 uses awsAwsjson11_deserializeOpDescribeImages
service/appstream v1.64.0 uses smithyRpcv2cbor_deserializeOpDescribeImages
The generated CBOR deserializer may need to tolerate explicit CBOR null values for one or more optional Image fields returned by AppStream.
Additional Information/Context
No response
AWS Go SDK V2 Module Versions Used
AWS Go SDK V2 Module Versions Used:
Failing version:
github.com/aws/aws-sdk-go-v2/service/appstream v1.64.0
Known working version:
github.com/aws/aws-sdk-go-v2/service/appstream v1.63.0
Current updated module set in my project:
github.com/aws/aws-sdk-go-v2 v1.43.2
github.com/aws/aws-sdk-go-v2/config v1.32.33
github.com/aws/aws-sdk-go-v2/credentials v1.19.32
github.com/aws/aws-sdk-go-v2/service/appstream v1.64.3
github.com/aws/smithy-go v1.27.5
Compiler and Version used
go version go1.26.5 darwin/arm64
Operating System and version
macOS / darwin arm64
Acknowledgements
go get -u github.com/aws/aws-sdk-go-v2/...)Describe the bug
AppStream.DescribeImagesfails while reading the second page of images after updatinggithub.com/aws/aws-sdk-go-v2/service/appstreamfromv1.63.0tov1.64.0.The first page is returned successfully, including a
NextToken. The second request using that token fails during SDK deserialization even though the HTTP response status is200.The error is:
unexpected value type *cbor.NilThis happens both with manual pagination and with
appstream.NewDescribeImagesPaginator.This appears to be a regression introduced by the AppStream SDK service module update from
v1.63.0tov1.64.0. Inv1.63.0, the same code successfully reads both pages.Regression Issue
Expected Behavior
DescribeImagesshould successfully deserialize all pages returned by AppStream.Manual pagination and
NewDescribeImagesPaginatorshould both return page 0 and page 1 without error, as they do withgithub.com/aws/aws-sdk-go-v2/service/appstream v1.63.0.Current Behavior
With
github.com/aws/aws-sdk-go-v2/service/appstream v1.64.0, the first page succeeds and the second page fails during deserialization.Output:
With
github.com/aws/aws-sdk-go-v2/service/appstream v1.63.0, the same code succeeds:Reproduction Steps
Reproduction Steps:
The account/region must contain enough private AppStream images to require pagination from
DescribeImages.Possible Solution
This may be related to the AppStream service module switching protocol/deserialization behavior in
v1.64.0.Observed locally:
service/appstream v1.63.0usesawsAwsjson11_deserializeOpDescribeImagesservice/appstream v1.64.0usessmithyRpcv2cbor_deserializeOpDescribeImagesThe generated CBOR deserializer may need to tolerate explicit CBOR null values for one or more optional
Imagefields returned by AppStream.Additional Information/Context
No response
AWS Go SDK V2 Module Versions Used
AWS Go SDK V2 Module Versions Used:
Failing version:
Known working version:
Current updated module set in my project:
Compiler and Version used
go version go1.26.5 darwin/arm64
Operating System and version
macOS / darwin arm64