Build Logs

polyvariant/sttp-oauth2 • 3.8.0-RC6:2026-01-08

Errors

0

Warnings

34

Total Lines

641

1##################################
2Clonning https://github.com/polyvariant/sttp-oauth2.git into /build/repo using revision v0.21.0
3##################################
4Note: switching to 'cd49ea5783f94654211f07b05a8138ed290073a4'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21Would override fixed Scala version: 3.3.7
22----
23Preparing build for 3.8.0-RC6
24Scala binary version found: 3.8
25Implicitly using source version 3.8
26Scala binary version found: 3.8
27Implicitly using source version 3.8
28Would try to apply common scalacOption (best-effort, sbt/mill only):
29Append: ,REQUIRE:-source:3.8
30Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
31
32Try apply source patch:
33Path: build.sbt
34Pattern: val Scala3 = "3.3.7"
35Replacement: val Scala3 = "3.8.0-RC6"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (17))
38Compiled project (Scala 3.7.3, JVM (17))
39Successfully applied pattern 'val Scala3 = "3.3.7"' in build.sbt
40----
41Starting build for 3.8.0-RC6
42Execute tests: true
43sbt project found:
44No prepare script found for project polyvariant/sttp-oauth2
45##################################
46Scala version: 3.8.0-RC6
47Targets: org.polyvariant%sttp-oauth2 org.polyvariant%sttp-oauth2-cache org.polyvariant%sttp-oauth2-cache-cats org.polyvariant%sttp-oauth2-cache-future org.polyvariant%sttp-oauth2-cache-scalacache org.polyvariant%sttp-oauth2-cache-zio org.polyvariant%sttp-oauth2-circe org.polyvariant%sttp-oauth2-jsoniter org.polyvariant%sttp-oauth2-zio-json
48Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val Scala3 = \"3.3.7\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}
49##################################
50Using extra scalacOptions: ,REQUIRE:-source:3.8
51Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
52[sbt_options] declare -a sbt_options=()
53[process_args] java_version = '17'
54[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
55# Executing command line:
56java
57-Dfile.encoding=UTF8
58-Xms1G
59-Xmx5G
60-XX:ReservedCodeCacheSize=500M
61-XX:+TieredCompilation
62-XX:+UseParallelGC
63-Dcommunitybuild.scala=3.8.0-RC6
64-Dcommunitybuild.project.dependencies.add=
65-Xmx7G
66-Xms4G
67-Xss8M
68-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
69-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
70-jar
71/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
72"setCrossScalaVersions 3.8.0-RC6"
73"++3.8.0-RC6 -v"
74"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
75"set every credentials := Nil"
76"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
77"removeScalacOptionsStartingWith -P:wartremover"
78
79moduleMappings
80"runBuild 3.8.0-RC6 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val Scala3 = \"3.3.7\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}""" org.polyvariant%sttp-oauth2 org.polyvariant%sttp-oauth2-cache org.polyvariant%sttp-oauth2-cache-cats org.polyvariant%sttp-oauth2-cache-future org.polyvariant%sttp-oauth2-cache-scalacache org.polyvariant%sttp-oauth2-cache-zio org.polyvariant%sttp-oauth2-circe org.polyvariant%sttp-oauth2-jsoniter org.polyvariant%sttp-oauth2-zio-json"
81
82[info] [launcher] getting org.scala-sbt sbt 1.11.7 (this may take some time)...
83[info] welcome to sbt 1.11.7 (Eclipse Adoptium Java 17.0.8)
84[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
85[info] loading project definition from /build/repo/project
86[info] compiling 2 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
87[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
88[info] Compilation completed in 8.55s.
89[info] done compiling
90[info] loading settings for project root from build.sbt...
91[info] resolving key references (15519 settings) ...
92[info] set current project to root (in build file:/build/repo/)
93Execute setCrossScalaVersions: 3.8.0-RC6
94OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-jsoniter/crossScalaVersions
95OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2/crossScalaVersions
96OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-jsoniterJS/crossScalaVersions
97OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-circe/crossScalaVersions
98OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-cache/crossScalaVersions
99OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-cache-cats/crossScalaVersions
100OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-cache-zio/crossScalaVersions
101OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-circeJS/crossScalaVersions
102OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-cache-future/crossScalaVersions
103OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-zio-json/crossScalaVersions
104OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in docs/crossScalaVersions
105OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-zio-jsonJS/crossScalaVersions
106OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in root/crossScalaVersions
107OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-cache-futureJS/crossScalaVersions
108OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-cache-scalacache/crossScalaVersions
109OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2JS/crossScalaVersions
110OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oauth2-cacheJS/crossScalaVersions
111[info] set current project to root (in build file:/build/repo/)
112[info] Setting Scala version to 3.8.0-RC6 on 17 projects.
113[info] Switching Scala version on:
114[info] oauth2-jsoniter (2.12.21, 2.13.18, 3.8.0-RC6)
115[info] oauth2JS (2.12.21, 2.13.18, 3.8.0-RC6)
116[info] oauth2-cacheJS (2.12.21, 2.13.18, 3.8.0-RC6)
117[info] oauth2-cache-zio (2.12.21, 2.13.18, 3.8.0-RC6)
118[info] oauth2-jsoniterJS (2.12.21, 2.13.18, 3.8.0-RC6)
119[info] * root (2.12.21, 2.13.18, 3.8.0-RC6)
120[info] oauth2-cache-scalacache (2.12.21, 2.13.18, 3.8.0-RC6)
121[info] docs (2.12.21, 2.13.18, 3.8.0-RC6)
122[info] oauth2-circe (2.12.21, 2.13.18, 3.8.0-RC6)
123[info] oauth2-cache-cats (2.12.21, 2.13.18, 3.8.0-RC6)
124[info] oauth2-zio-jsonJS (2.12.21, 2.13.18, 3.8.0-RC6)
125[info] oauth2-cache-future (2.12.21, 2.13.18, 3.8.0-RC6)
126[info] oauth2-circeJS (2.12.21, 2.13.18, 3.8.0-RC6)
127[info] oauth2-cache (2.12.21, 2.13.18, 3.8.0-RC6)
128[info] oauth2-cache-futureJS (2.12.21, 2.13.18, 3.8.0-RC6)
129[info] oauth2-zio-json (2.12.21, 2.13.18, 3.8.0-RC6)
130[info] oauth2 (2.12.21, 2.13.18, 3.8.0-RC6)
131[info] Excluding projects:
132[info] Reapplying settings...
133[info] set current project to root (in build file:/build/repo/)
134Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
135[info] Reapplying settings...
136[info] set current project to root (in build file:/build/repo/)
137[info] Defining Global / credentials, credentials and 15 others.
138[info] The new values will be used by Global / pgpSelectPassphrase, Global / pgpSigningKey and 84 others.
139[info] Run `last` for details.
140[info] Reapplying settings...
141[info] set current project to root (in build file:/build/repo/)
142Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
143[info] Reapplying settings...
144OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
145
146 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
147 Did you mean oauth2-cache-futureJS / allExcludeDependencies ?
148 , retry without global scopes
149[info] Reapplying settings...
150[info] set current project to root (in build file:/build/repo/)
151Execute removeScalacOptionsStartingWith: -P:wartremover
152[info] Reapplying settings...
153[info] set current project to root (in build file:/build/repo/)
154[success] Total time: 0 s, completed Jan 8, 2026, 1:58:36 AM
155Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val Scala3 = \"3.3.7\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}
156Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
157Starting build...
158Projects: Set(oauth2-jsoniter, oauth2-cache-zio, oauth2-cache-scalacache, oauth2-circe, oauth2-cache-cats, oauth2-cache-future, oauth2-cache, oauth2-zio-json, oauth2)
159Starting build for ProjectRef(file:/build/repo/,oauth2-jsoniter) (sttp-oauth2-jsoniter)... [0/9]
160OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
161OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
162OpenCB::Filter out '-Xfatal-warnings', matches setting pattern '^-?-Xfatal-warnings'
163Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -Wconf:cat=deprecation:info, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
164[info] compiling 23 Scala sources to /build/repo/oauth2/jvm/target/scala-3.8.0-RC6/classes ...
165[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
166[warn] one warning found
167[info] done compiling
168[info] compiling 2 Scala sources to /build/repo/oauth2-jsoniter/jvm/target/scala-3.8.0-RC6/classes ...
169[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
170[warn] one warning found
171[info] done compiling
172[info] compiling 16 Scala sources to /build/repo/oauth2/jvm/target/scala-3.8.0-RC6/test-classes ...
173[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
174[warn] one warning found
175[info] done compiling
176[info] compiling 1 Scala source to /build/repo/oauth2-jsoniter/jvm/target/scala-3.8.0-RC6/test-classes ...
177[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
178[warn] one warning found
179[info] done compiling
180[info] JsoniterJsonSpec:
181[info] token response JSON
182[info] - should be deserialized to proper case class
183[info] Token with no scope
184[info] - should be deserialized
185[info] Token with empty scope
186[info] - should be deserialized with None scope
187[info] Token with malformed scope
188[info] - should not be deserialized
189[info] Token with wildcard scope
190[info] - should not be deserialized
191[info] Token with multiple scope tokens
192[info] - should be deserialized
193[info] Token with wrong type
194[info] - should not be deserialized
195[info] token response JSON
196[info] - should be deserialized to proper response
197[info] token response JSON without scope
198[info] - should be deserialized to proper response
199[info] token response JSON with empty scope
200[info] - should be deserialized to proper response with None scope
201[info] JSON with error
202[info] - should be deserialized to proper type
203[info] JSON with error without optional fields
204[info] - should be deserialized to proper type
205[info] Token
206[info] - should deserialize token introspection response with a string audience
207[info] Token
208[info] - should deserialize token introspection response with a array of audiences
209[info] UserInfo
210[info] - should deserialize incomplete user info
211[info] UserInfo
212[info] - should deserialize complete user info
213[info] Token
214[info] - should deserialize OAuth2Token
215[info] Token
216[info] - should deserialize RefreshTokenResponse
217[info] invalid_request error JSON
218[info] - should be deserialized to InvalidRequest
219[info] invalid_client error JSON
220[info] - should be deserialized to InvalidClient
221[info] invalid_grant error JSON
222[info] - should be deserialized to InvalidGrant
223[info] unauthorized_client error JSON
224[info] - should be deserialized to UnauthorizedClient
225[info] unsupported_grant_type error JSON
226[info] - should be deserialized to InvalidGrant
227[info] invalid_scope error JSON
228[info] - should be deserialized to InvalidGrant
229[info] invalid_token error JSON
230[info] - should be deserialized to Unknown
231[info] insufficient_scope error JSON
232[info] - should be deserialized to Unknown
233[info] unknown error JSON
234[info] - should be deserialized to Unknown
235[info] JSON in wrong format
236[info] - should not be deserialized
237Starting build for ProjectRef(file:/build/repo/,oauth2-cache-future) (sttp-oauth2-cache-future)... [1/9]
238Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
239[info] compiling 1 Scala source to /build/repo/oauth2-cache/jvm/target/scala-3.8.0-RC6/classes ...
240[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
241[warn] one warning found
242[info] done compiling
243[info] compiling 3 Scala sources to /build/repo/oauth2-cache-future/jvm/target/scala-3.8.0-RC6/classes ...
244[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
245[warn] one warning found
246[info] done compiling
247[info] compiling 4 Scala sources to /build/repo/oauth2-cache-future/jvm/target/scala-3.8.0-RC6/test-classes ...
248[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
249[warn] one warning found
250[info] done compiling
251[info] MonixFutureCacheSpec:
252[info] MonixFutureCache
253[info] - should return nothing on empty cache
254[info] - should store and retrieve value immediately
255[info] - should return value right before expiration boundary
256[info] - should not return value if expired
257[info] - should remove value on expired get
258[info] FutureCachingAccessTokenProviderSpec:
259[info] CachingAccessTokenProvider
260[info] - should delegate token retrieval on first call
261[info] - should decrease expiresIn in second read
262[info] - should not refresh token before expiration
263[info] - should ask for token again after expiration
264Starting build for ProjectRef(file:/build/repo/,oauth2-zio-json) (sttp-oauth2-zio-json)... [2/9]
265Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
266[info] compiling 2 Scala sources to /build/repo/oauth2-zio-json/jvm/target/scala-3.8.0-RC6/classes ...
267[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
268[warn] one warning found
269[info] done compiling
270[info] compiling 1 Scala source to /build/repo/oauth2-zio-json/jvm/target/scala-3.8.0-RC6/test-classes ...
271[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
272[warn] one warning found
273[info] done compiling
274[info] ZioJsonSpec:
275[info] token response JSON
276[info] - should be deserialized to proper case class
277[info] Token with no scope
278[info] - should be deserialized
279[info] Token with empty scope
280[info] - should be deserialized with None scope
281[info] Token with malformed scope
282[info] - should not be deserialized
283[info] Token with wildcard scope
284[info] - should not be deserialized
285[info] Token with multiple scope tokens
286[info] - should be deserialized
287[info] Token with wrong type
288[info] - should not be deserialized
289[info] token response JSON
290[info] - should be deserialized to proper response
291[info] token response JSON without scope
292[info] - should be deserialized to proper response
293[info] token response JSON with empty scope
294[info] - should be deserialized to proper response with None scope
295[info] JSON with error
296[info] - should be deserialized to proper type
297[info] JSON with error without optional fields
298[info] - should be deserialized to proper type
299[info] Token
300[info] - should deserialize token introspection response with a string audience
301[info] Token
302[info] - should deserialize token introspection response with a array of audiences
303[info] UserInfo
304[info] - should deserialize incomplete user info
305[info] UserInfo
306[info] - should deserialize complete user info
307[info] Token
308[info] - should deserialize OAuth2Token
309[info] Token
310[info] - should deserialize RefreshTokenResponse
311[info] invalid_request error JSON
312[info] - should be deserialized to InvalidRequest
313[info] invalid_client error JSON
314[info] - should be deserialized to InvalidClient
315[info] invalid_grant error JSON
316[info] - should be deserialized to InvalidGrant
317[info] unauthorized_client error JSON
318[info] - should be deserialized to UnauthorizedClient
319[info] unsupported_grant_type error JSON
320[info] - should be deserialized to InvalidGrant
321[info] invalid_scope error JSON
322[info] - should be deserialized to InvalidGrant
323[info] invalid_token error JSON
324[info] - should be deserialized to Unknown
325[info] insufficient_scope error JSON
326[info] - should be deserialized to Unknown
327[info] unknown error JSON
328[info] - should be deserialized to Unknown
329[info] JSON in wrong format
330[info] - should not be deserialized
331Starting build for ProjectRef(file:/build/repo/,oauth2-cache-cats) (sttp-oauth2-cache-cats)... [3/9]
332Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
333[info] compiling 3 Scala sources to /build/repo/oauth2-cache-cats/target/scala-3.8.0-RC6/classes ...
334[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
335[warn] one warning found
336[info] done compiling
337[info] compiling 5 Scala sources to /build/repo/oauth2-cache-cats/target/scala-3.8.0-RC6/test-classes ...
338[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
339[warn] one warning found
340[info] done compiling
341[info] CachingTokenIntrospectionSpec:
342[info] CachingTokenIntrospection
343[info] - should delegate token retrieval on first call
344[info] - should return cached response if it's not yet expired
345[info] - should fetch the new introspection result if the cache has expired
346[info] - should fetch the new introspection result if the cache has reached the default ttl
347[info] CachingAccessTokenProviderSpec:
348[info] CachingAccessTokenProvider
349[info] - should delegate token retrieval on first call
350[info] - should decrease expiresIn in second read
351[info] - should not refresh token before expiration
352[info] - should ask for token again after expiration
353[info] CatsRefExpiringCacheSpec:
354[info] Cache
355[info] - should return nothing on empty cache
356[info] - should store and retrieve value immediately
357[info] - should return value right before expiration boundary
358[info] - should not return value if expired
359[info] - should remove value on expired get
360[info] CachingAccessTokenProviderParallelSpec:
361[info] CachingAccessTokenProvider
362[info] - should block multiple parallel
363[info] - should not block multiple parallel access if its already in cache
364Starting build for ProjectRef(file:/build/repo/,oauth2-circe) (sttp-oauth2-circe)... [4/9]
365Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
366[info] compiling 2 Scala sources to /build/repo/oauth2-circe/jvm/target/scala-3.8.0-RC6/classes ...
367[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
368[warn] one warning found
369[info] done compiling
370[info] compiling 1 Scala source to /build/repo/oauth2-circe/jvm/target/scala-3.8.0-RC6/test-classes ...
371[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
372[warn] one warning found
373[info] done compiling
374[info] CirceJsonSpec:
375[info] token response JSON
376[info] - should be deserialized to proper case class
377[info] Token with no scope
378[info] - should be deserialized
379[info] Token with empty scope
380[info] - should be deserialized with None scope
381[info] Token with malformed scope
382[info] - should not be deserialized
383[info] Token with wildcard scope
384[info] - should not be deserialized
385[info] Token with multiple scope tokens
386[info] - should be deserialized
387[info] Token with wrong type
388[info] - should not be deserialized
389[info] token response JSON
390[info] - should be deserialized to proper response
391[info] token response JSON without scope
392[info] - should be deserialized to proper response
393[info] token response JSON with empty scope
394[info] - should be deserialized to proper response with None scope
395[info] JSON with error
396[info] - should be deserialized to proper type
397[info] JSON with error without optional fields
398[info] - should be deserialized to proper type
399[info] Token
400[info] - should deserialize token introspection response with a string audience
401[info] Token
402[info] - should deserialize token introspection response with a array of audiences
403[info] UserInfo
404[info] - should deserialize incomplete user info
405[info] UserInfo
406[info] - should deserialize complete user info
407[info] Token
408[info] - should deserialize OAuth2Token
409[info] Token
410[info] - should deserialize RefreshTokenResponse
411[info] invalid_request error JSON
412[info] - should be deserialized to InvalidRequest
413[info] invalid_client error JSON
414[info] - should be deserialized to InvalidClient
415[info] invalid_grant error JSON
416[info] - should be deserialized to InvalidGrant
417[info] unauthorized_client error JSON
418[info] - should be deserialized to UnauthorizedClient
419[info] unsupported_grant_type error JSON
420[info] - should be deserialized to InvalidGrant
421[info] invalid_scope error JSON
422[info] - should be deserialized to InvalidGrant
423[info] invalid_token error JSON
424[info] - should be deserialized to Unknown
425[info] insufficient_scope error JSON
426[info] - should be deserialized to Unknown
427[info] unknown error JSON
428[info] - should be deserialized to Unknown
429[info] JSON in wrong format
430[info] - should not be deserialized
431Starting build for ProjectRef(file:/build/repo/,oauth2-cache-zio) (sttp-oauth2-cache-zio)... [5/9]
432Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Ykind-projector:underscores, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
433[info] compiling 2 Scala sources to /build/repo/oauth2-cache-zio/target/scala-3.8.0-RC6/classes ...
434[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
435[warn] one warning found
436[info] done compiling
437[info] compiling 4 Scala sources to /build/repo/oauth2-cache-zio/target/scala-3.8.0-RC6/test-classes ...
438[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
439[warn] one warning found
440[info] done compiling
441+ CachingAccessTokenProvider
442 + not block multiple parallel access if its already in cache
443 + block multiple parallel
444+ CachingAccessTokenProvider
445 + delegate token retrieval on first call
446 + decrease expiresIn in second read
447 + not refresh token before expiration
448 + ask for token again after expiration
449+ Cache
450 + return nothing on empty cache
451 + store and retrieve value immediately
452 + not return value if expired
453 + return value right before expiration boundary
454 + remove value on expired get
45511 tests passed. 0 tests failed. 0 tests ignored.
456
457Executed in 1 s 191 ms
458
459Starting build for ProjectRef(file:/build/repo/,oauth2-cache-scalacache) (sttp-oauth2-cache-scalacache)... [6/9]
460Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
461[info] compiling 1 Scala source to /build/repo/oauth2-cache-scalacache/target/scala-3.8.0-RC6/classes ...
462[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
463[warn] one warning found
464[info] done compiling
465[info] compiling 1 Scala source to /build/repo/oauth2-cache-scalacache/target/scala-3.8.0-RC6/test-classes ...
466[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
467[warn] one warning found
468[info] done compiling
469SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
470SLF4J: Defaulting to no-operation (NOP) logger implementation
471SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
472[info] ScalacacheExpiringCacheSpec:
473[info] Cache
474[info] - should return nothing on empty cache
475[info] - should store and retrieve value immediately
476[info] - should return value right before expiration boundary
477[info] - should not return value if expired
478[info] - should remove value when expired
479Starting build for ProjectRef(file:/build/repo/,oauth2) (sttp-oauth2)... [7/9]
480Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
481[info] AuthorizationCodeProviderSpec:
482[info] Default instance
483[info] can loginLink
484[info] - should generate basic login link with default values
485[info] - should generate login link with including state
486[info] - should generate login link with including scopes
487[info] can logoutLink
488[info] - should generate basic logout link with default values
489[info] - should generate logout link respecting post logout uri
490[info] Custom instance
491[info] can loginLink
492[info] - should generate basic login link with default values
493[info] - should generate login link with including state
494[info] - should generate login link with including scopes
495[info] can logoutLink
496[info] - should generate basic logout link with default values
497[info] - should generate logout link respecting post logout uri
498[info] ClientCredentialsSpec:
499[info] ClientCredentials.requestToken
500[info] - should successfully request token
501[info] - should support invalid_client OAuth2 error
502[info] - should support invalid_request OAuth2 error
503[info] - should support invalid_grant OAuth2 error
504[info] - should support unauthorized_client OAuth2 error
505[info] - should support unsupported_grant_type OAuth2 error
506[info] - should support invalid_scope OAuth2 error
507[info] - should fail on unknown error
508[info] ClientCredentials.introspectToken
509[info] - should successfully introspect token
510[info] - should support invalid_client OAuth2 error
511[info] - should support invalid_request OAuth2 error
512[info] - should support invalid_grant OAuth2 error
513[info] - should support unauthorized_client OAuth2 error
514[info] - should support unsupported_grant_type OAuth2 error
515[info] - should support invalid_scope OAuth2 error
516[info] - should fail on unknown error
517[info] ValidScopeTest:
518[info] Scope
519[info] - should be created according to RFC allowed characters
520[info] - should not be created for empty string
521[info] - should not be created for characters outside allowed range
522[info] SttpOauth2ClientCredentialsBackendSpec:
523[info] SttpOauth2ClientCredentialsBackend
524[info] when TestApp is invoked once
525[info] - should request a token. add the token to the TestApp request
526[info] AuthorizationCodeSpec:
527[info] loginLink
528[info] - should generate basic login link with default values
529[info] - should ignore extra path elements in base uri
530[info] - should generate login link with including state
531[info] - should generate login link with including scopes
532[info] logoutLink
533[info] - should generate basic logout link with default values
534[info] - should generate logout link respecting post logout uri
535[info] authCodeToToken
536[info] - should decode valid extended response
537[info] - should decode valid basic response
538[info] - should fail effect with circe error on decode error
539[info] - should fail effect with runtime error on all other errors
540Starting build for ProjectRef(file:/build/repo/,oauth2-cache) (sttp-oauth2-cache)... [8/9]
541Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
542
543************************
544Build summary:
545[{
546 "module": "sttp-oauth2-jsoniter",
547 "compile": {"status": "ok", "tookMs": 13484, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
548 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
549 "test-compile": {"status": "ok", "tookMs": 7601, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
550 "test": {"status": "ok", "tookMs": 968, "passed": 28, "failed": 0, "ignored": 0, "skipped": 0, "total": 28, "byFramework": [{"framework": "unknown", "stats": {"passed": 28, "failed": 0, "ignored": 0, "skipped": 0, "total": 28}}]},
551 "publish": {"status": "skipped", "tookMs": 0},
552 "metadata": {
553 "crossScalaVersions": ["2.12.21", "2.13.18", "3.3.7"]
554}
555},{
556 "module": "sttp-oauth2-cache-future",
557 "compile": {"status": "ok", "tookMs": 1533, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
558 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
559 "test-compile": {"status": "ok", "tookMs": 1173, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
560 "test": {"status": "ok", "tookMs": 1302, "passed": 9, "failed": 0, "ignored": 0, "skipped": 0, "total": 9, "byFramework": [{"framework": "unknown", "stats": {"passed": 9, "failed": 0, "ignored": 0, "skipped": 0, "total": 9}}]},
561 "publish": {"status": "skipped", "tookMs": 0},
562 "metadata": {
563 "crossScalaVersions": ["2.12.21", "2.13.18", "3.3.7"]
564}
565},{
566 "module": "sttp-oauth2-zio-json",
567 "compile": {"status": "ok", "tookMs": 2544, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
568 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
569 "test-compile": {"status": "ok", "tookMs": 518, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
570 "test": {"status": "ok", "tookMs": 469, "passed": 28, "failed": 0, "ignored": 0, "skipped": 0, "total": 28, "byFramework": [{"framework": "unknown", "stats": {"passed": 28, "failed": 0, "ignored": 0, "skipped": 0, "total": 28}}]},
571 "publish": {"status": "skipped", "tookMs": 0},
572 "metadata": {
573 "crossScalaVersions": ["2.12.21", "2.13.18", "3.3.7"]
574}
575},{
576 "module": "sttp-oauth2-cache-cats",
577 "compile": {"status": "ok", "tookMs": 1463, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
578 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
579 "test-compile": {"status": "ok", "tookMs": 2197, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
580 "test": {"status": "ok", "tookMs": 2722, "passed": 15, "failed": 0, "ignored": 0, "skipped": 0, "total": 15, "byFramework": [{"framework": "unknown", "stats": {"passed": 15, "failed": 0, "ignored": 0, "skipped": 0, "total": 15}}]},
581 "publish": {"status": "skipped", "tookMs": 0},
582 "metadata": {
583 "crossScalaVersions": ["2.12.21", "2.13.18", "3.3.7"]
584}
585},{
586 "module": "sttp-oauth2-circe",
587 "compile": {"status": "ok", "tookMs": 997, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
588 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
589 "test-compile": {"status": "ok", "tookMs": 603, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
590 "test": {"status": "ok", "tookMs": 518, "passed": 28, "failed": 0, "ignored": 0, "skipped": 0, "total": 28, "byFramework": [{"framework": "unknown", "stats": {"passed": 28, "failed": 0, "ignored": 0, "skipped": 0, "total": 28}}]},
591 "publish": {"status": "skipped", "tookMs": 0},
592 "metadata": {
593 "crossScalaVersions": ["2.12.21", "2.13.18", "3.3.7"]
594}
595},{
596 "module": "sttp-oauth2-cache-zio",
597 "compile": {"status": "ok", "tookMs": 619, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
598 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
599 "test-compile": {"status": "ok", "tookMs": 1128, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
600 "test": {"status": "ok", "tookMs": 1752, "passed": 11, "failed": 0, "ignored": 0, "skipped": 0, "total": 11, "byFramework": [{"framework": "unknown", "stats": {"passed": 11, "failed": 0, "ignored": 0, "skipped": 0, "total": 11}}]},
601 "publish": {"status": "skipped", "tookMs": 0},
602 "metadata": {
603 "crossScalaVersions": ["2.12.21", "2.13.18", "3.3.7"]
604}
605},{
606 "module": "sttp-oauth2-cache-scalacache",
607 "compile": {"status": "ok", "tookMs": 932, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
608 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
609 "test-compile": {"status": "ok", "tookMs": 1066, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
610 "test": {"status": "ok", "tookMs": 584, "passed": 5, "failed": 0, "ignored": 0, "skipped": 0, "total": 5, "byFramework": [{"framework": "unknown", "stats": {"passed": 5, "failed": 0, "ignored": 0, "skipped": 0, "total": 5}}]},
611 "publish": {"status": "skipped", "tookMs": 0},
612 "metadata": {
613 "crossScalaVersions": ["2.12.21", "2.13.18", "3.3.7"]
614}
615},{
616 "module": "sttp-oauth2",
617 "compile": {"status": "ok", "tookMs": 34, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
618 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
619 "test-compile": {"status": "ok", "tookMs": 62, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
620 "test": {"status": "ok", "tookMs": 420, "passed": 40, "failed": 0, "ignored": 0, "skipped": 0, "total": 40, "byFramework": [{"framework": "unknown", "stats": {"passed": 40, "failed": 0, "ignored": 0, "skipped": 0, "total": 40}}]},
621 "publish": {"status": "skipped", "tookMs": 0},
622 "metadata": {
623 "crossScalaVersions": ["2.12.21", "2.13.18", "3.3.7"]
624}
625},{
626 "module": "sttp-oauth2-cache",
627 "compile": {"status": "ok", "tookMs": 67, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
628 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
629 "test-compile": {"status": "ok", "tookMs": 91, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
630 "test": {"status": "ok", "tookMs": 86, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
631 "publish": {"status": "skipped", "tookMs": 0},
632 "metadata": {
633 "crossScalaVersions": ["2.12.21", "2.13.18", "3.3.7"]
634}
635}]
636************************
637[success] Total time: 54 s, completed Jan 8, 2026, 1:59:30 AM
638[0JChecking patch project/plugins.sbt...
639Checking patch build.sbt...
640Applied patch project/plugins.sbt cleanly.
641Applied patch build.sbt cleanly.