{"record":{"id":"de985a8e32b803fa","repo":"kopia/kopia","slug":"cannot-specify-a-point-in-time-option-when-creat-de985a","errorCode":null,"errorMessage":"Cannot specify a 'point-in-time' option when creating a repository","messagePattern":"Cannot specify a 'point-in-time' option when creating a repository","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/storage_s3.go","lineNumber":86,"sourceCode":"\treturn nil\n}\n\nfunc (c *storageS3Flags) preActionLoadPEMBase64(_ *kingpin.ParseContext) error {\n\tcaContent, err := base64.StdEncoding.DecodeString(c.rootCaPemBase64)\n\tif err != nil {\n\t\treturn errors.Wrap(err, \"unable to decode CA\")\n\t}\n\n\tc.s3options.RootCA = caContent\n\n\treturn nil\n}\n\nfunc (c *storageS3Flags) Connect(ctx context.Context, isCreate bool, formatVersion int) (blob.Storage, error) {\n\t_ = formatVersion\n\n\tif isCreate && c.s3options.PointInTime != nil && !c.s3options.PointInTime.IsZero() {\n\t\treturn nil, errors.New(\"Cannot specify a 'point-in-time' option when creating a repository\")\n\t}\n\n\t//nolint:wrapcheck\n\treturn s3.New(ctx, &c.s3options, isCreate)\n}\n\nfunc init() {\n\tmustRegisterStorageProvider(\n\t\t\"s3\",\n\t\t\"an S3 bucket\",\n\t\tfunc() StorageFlags { return &storageS3Flags{} },\n\t)\n}\n","sourceCodeStart":68,"sourceCodeEnd":100,"githubUrl":"https://github.com/kopia/kopia/blob/82495e54b584c1ef6073c9e1be048f57f8aef078/cli/storage_s3.go#L68-L100","documentation":"S3 'point-in-time' is a versioned-bucket recovery option for existing repositories. storageS3Flags.Connect rejects repository creation when PointInTime is non-zero, because a brand-new repository cannot be created at a past point in time.","triggerScenarios":"`kopia repository create s3 ...` with --point-in-time set, or config/env injecting s3options.PointInTime during create.","commonSituations":"Scripts reusing a connect command line for create; leftover --point-in-time from versioning/PITR experiments.","solutions":["Remove --point-in-time from the create command","Use `repository connect s3 --point-in-time` for an existing repository","Clear stale point-in-time values from config or environment"],"exampleFix":"// before\nkopia repository create s3 --bucket b --point-in-time 2024-01-01\n// after\nkopia repository connect s3 --bucket b --point-in-time 2024-01-01","handlingStrategy":"validation","validationCode":"if isCreate && opts.PointInTime != nil && !opts.PointInTime.IsZero() {\n    return errors.New(\"point-in-time not allowed on create\")\n}","typeGuard":null,"tryCatchPattern":"_, err := flags.Connect(ctx, true, ver)\nif err != nil && strings.Contains(err.Error(), \"point-in-time\") {\n    // strip the flag and retry\n}","preventionTips":["Omit --point-in-time on create","Use connect for PITR of existing repos","Audit scripts for copied connect flags"],"tags":["s3","cli","storage","validation"],"backgroundTag":"mutually-exclusive-options","analyzedSha":"82495e54b584c1ef6073c9e1be048f57f8aef078","analyzedAt":"2026-09-07T20:35:21.689Z","contentChangedAt":"2026-09-07T20:35:21.689Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}